使用telepresence调试
参考: https://jimmysong.io/blog/how-to-debug-microservices-in-kubernetes-with-proxy-sidecar-or-service-mesh/
参考: https://www.telepresence.io/docs/latest/quick-start/?os=windows
参考: hthttps://kubernetes.io/zh-cn/docs/tasks/debug/debug-cluster/local-debugging/
参考: https://www.getambassador.io/docs/telepresence-oss/latest/reference/architecture
参考: https://www.cnblogs.com/lichengmin/p/16227736.html
参考(应该是老版本,可以简单看下其中工作原理方面的说明):https://blog.betacat.io/post/develop-and-debug-k8s-microservices-locally-using-telepresence/
单体项目可以很方便的在本地调试。(本地搭建一套环境)
裸机微服务项目也类似。(本地搭一套环境,或者部分服务放到本地)
容器化的项目,以及k8s中的项目,需要借助工具做本地调试。(代理,sidecar,mesh等方式 )
Proxy 模式:Telepresence
如果本地要访问k8s中的服务,最直接的想法是建vpn:k8s中放个vpn server。本地连接vpn。
参考:https://www.getambassador.io/docs/telepresence-oss/latest/reference/architecture
实际上,有专门的工具Telepresence,更方便好用,而且可以控制流量转发。
参考: https://www.telepresence.io/docs/latest/quick-start/
参考: https://www.cnblogs.com/lichengmin/p/16227736.html
本地安装telepresence
下载对应的程序文件,安装(windows环境是下载对应的压缩包,解压管理员运行其中的ps文件)
在k8s集群中安装telepresence
telepresence helm install
好像是一条语法糖,实际是helm安装的telepresence
允许本地访问k8s中的服务
telepresence connect
查看k8s中的服务(当前命名空间)
telepresence list
拦截k8s中的流量,转发到本地
telepresence intercept <service-name> --port <local-port>[:<remote-port>] --env-file <path-to-env-file>
这里还将远程服务的环境变量保存到本地文件。
对于JetBrains IDE 可以安装EnvFile Plugin方便使用。
发表回复