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扫描下方二维码关注公众号和小程序↓↓↓