官方github:https://github.com/alibaba/kt-connect
本地linux安装
# 切换到root用户 sudo su pip install sshuttle curl -OL https://rdc-incubators.oss-cn-beijing.aliyuncs.com/stable/ktctl_linux_amd64.tar.gz tar -xzvf ktctl_linux_amd64.tar.gz mv ktctl_linux_amd64 /usr/local/bin/ktctl ktctl -h
这种安装的可能不是最新版,也可以离线下载.下载地址:
https://github.com/alibaba/kt-connect/releases/
在Kubernetes中部署联调服务
kubectl run tomcat --image=tomcat:7 --expose --port=8080 会自动创建deployments和service
Connect 从本地访问Kubernetes资源
本地执行
root用户执行
# ktctl --kubeconfig /home/luanpeng/.kube/config --debug connect
如果提示已经运行,则可以在k8s中把deployment删除,在客户端把/home/luanpeng/.ktctl/
文件夹删除.
访问PodIP:
运行成功后可以查看是否成功启动sshuttle
ps -ef |grep sshuttle
如果sshuttle两个进程没有启动,则说明启动失败
/usr/bin/python3 /usr/local/bin/sshuttle --dns --to-ns 10.42.0.58 -e ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -i /root/.kt_id_rsa -r /usr/bin/python3 /usr/local/bin/sshuttle --method auto --firewall
在这种场景下,开发者只要直接使用ktctl connect打通本地到集群的网络即可,就可以直接在本地通过PodIP/ClusterIP/DNS地址访问集群中的服务。