https://kubernetes.io/zh-cn/docs/tasks/debug/debug-cluster/local-debugging/
https://www.getambassador.io/docs/telepresence-oss
telepresence架构&原理
telepresence 是一个工具,用于简化本地开发和调试服务的过程,同时可以将服务代理到远程 Kubernetes 集群。 telepresence 允许你使用自定义工具(例如调试器和 IDE)调试本地服务, 并能够让此服务完全访问 ConfigMap、Secret 和远程集群上运行的服务。被调试的服务可以正常和集群中的其他服务进行通信(被访问和访问其他服务都可以)。
telepresence组件说明
- Telepresence CLI:控制入口,也用于启动或安装其他的组件,如telepresence daemon,traffic manager,授权Ambassador Cloud等。既起到bootstrap作用,又起到发送控制命令作用。初次执行telepresence cli时,其先启动了telepresence daemon,紧接着安装并连接traffic manager,最后才返回对应cmd的结果。
- Telepresence Daemon:
- User Daemon: 通过和Traffic Manager的通信对目标服务注入(Agent),所有和集群的请求都经过它
- Root Daemon: Root-Daemon设置虚拟网络设备(Virtual Network Device, VIF),建立了虚拟网络,来管理本地和集群之间通信。使得本地可以直接访问Kubernetes集群中的服务。
- Traffic Manager:集群流量入口点,也是流量控制的中枢代理。同时它会与Ambassador Cloud交互以支持Preview URL的特性。
- Traffic Agent:注入到Pod的边车,拦截到目标容器的通信,并转发到Traffic Manager
- Ambassador Cloud:如果使用Preview URL功能时,需要在其上事先注册,是收费功能。PreviewURL功能提供了一个公开的URL供其他成员访问服务(默认只能在本地访问)。非必需服务。
Windows上安装Telepresence
考虑到大多数情况下是在Windows下进行调试,选取Windows作为目标环境。Mac和Linux会更简单。
Telepresence的使用前提kubectl,所以要首先安装kubectl
kubectl安装&配置
https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-windows/
# 下载
curl.exe -LO "https://dl.k8s.io/release/v1.30.0/bin/windows/amd64/kubectl.exe"
# 将kubectl所在路径加入PATH环境变量
# 复制kubernetes的访问配置文件到windows路径,默认为
C:\Users\<UserName>\.kube\config
# 测试
kubectl version
kubectl get nodes
telepresence安装
官方安装说明
https://www.getambassador.io/docs/telepresence/latest/install
# To install Telepresence, run the following commands
# from PowerShell as Administrator.
# 1. Download the latest windows zip containing telepresence.exe and its dependencies (~50 MB):
Invoke-WebRequest htt