官方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地址访问集群中的服务。

01-07 22:02