IDEA 使用 Kubernetes 瑞士军刀 Telepresence 进行网络代理
IDEA Kubernetes Telepresence About 1,153 words关于 Telepresence
telepresence connect代理本机电脑,使本地就像处于Kubernetes集群环境中,能够直接使用集群的Service域名访问。
telepresence intercept能够拦截指定的Deployment入站流量,导入到本地,方便Debug、修复Bug、验证问题。
与 port-forward 差别
port-forward对于多个service需要开启多个kubectl命令,本地需要映射多个端口,并且是单向流量,只能本地向集群发送。
Telepresence直接让本地处于Kubernetes环境,直接使用service域名访问(ClusterIP类型的Service也可以直接域名访问),而且是双向流量,集群中流量访问本地服务,本地服务访问集群Service。
举例说明拦截功能
有ServiceA、ServiceB、ServiceC三个后端服务,业务调用为ServiceA->ServiceB->ServiceC,先初步发现是ServiceB服务有可能有问题,则使用telepresence intercept service-b-deployment拦截掉访问ServiceB的流量,并转发到本地启动的ServiceB服务。
即本地需要启动ServiceB的服务,集群中的ServiceA调用ServiceB服务时,Telepresence会拦截调用被转发到本地的ServiceB,本地ServiceB会继续调用集群中的ServiceC,因为intercept前提是connect,说明本地环境已经是Kubernetes集群环境了,本地ServiceB可以直接调用集群ServiceC。
前提
- 本地安装
Telepresence二进制文件,配置环境变量。 Telepresence只能拦截Deployment、StatefulSet、ReplicaSet。- 必须有对应
Service(Kubernetes的Service)。
说明
IDEA 2022.2版本的Kubernetes插件才提供的Telepresence功能。
目前IDEA中只能connect,不能quit,需要去命令行执行quit命令。
并且IDEA中不能卸载边车traffic-agent,需要去命令行执行uninstall命令。
备注
Windows需使用CMD、子系统、Chrome访问Kubernetes的Service域名。
不能使用Powershell的curl。
视频讲解
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓