k8s本地调试简要总结
1.将 k8s master 节点的 ~/.kube/config 文件复制到本机电脑的用户目录下的 .kube 目录中
2.本地环境安装 kubectl 工具。
https://kubernetes.io/releases/download/#binaries
配置环境变量,在 Path 中新增指向 kubectl.exe 所在目录,验证是否可以访问整个集群环境
3.部署kt-connect
KtConnect 是一款基于 k8s 环境用于提高本地测试联调效率的小工具。
功能包括:
Connect:建立数据代理通道,实现本地服务直接访问 k8s 集群内网(包括Pod IP和Service域名)
Exchange:让集群服务流量重定向到本地,实现快速验证本地版本和调试排查问题
Mesh:创建路由规则重定向特定流量,实现多人协作场景下互不影响的本地调试
Preview:暴露本地服务到集群,实现无需发布即可在线预览集成效果
-----------------------------------------------
https://github.com/alibaba/kt-connect
下载后,解压可以看到 ktctl.exe 和 wintun.dll
配置环境变量,在 Path 中新增一个,指向这两个文件所在目录
------------------------------------------------
ktctl -v
ktctl connect --debug -i 172.18.226.20/base/kt-connect-shadow:v0.3.7 -n <命名空间>
----------------------------------------------------------------------------------
exchange 将集群里访问指定服务的所有请求拦截并转发到本地的指定端口。
ktctl exchange --debug -i 172.18.226.20/base/kt-connect-shadow:v0.3.7 <目标服务名> -n <命名空间> --expose <本地端口>
mesh 通过指定的http请求头VERSION: xxxx的请求转发到本地电脑
ktctl mesh <目标服务名> -n <命名空间> --debug -i 172.18.226.20/base/kt-connect-shadow:v0.3.7 --expose <本地端口>:<目标服务端口> --versionMark 固定version值
preview 将本地服务作为一个全新的Service对外提供服务
ktctl preview <目标服务名> -n <命名空间> --expose <本地端口> -i 172.18.226.20/base/kt-connect-shadow:v0.3.7
4.本地调试
使用exchange或者mesh idea调试
JVM Inject:Auto Inject JVM Ops from .jvmrc file. Support use kt-connect socks5 mode