更有效地管理和与您的Kubernetes开发环境集成。详细文档访问链接,项目地址访问github
特征
sshuttle
用作访问远程Kubernetes集群网络的vpn工具。从此链接中下载kubectl的可执行文件,我这里下载的是对应我们线上kubernetes版本的kubectl。如果想要下载其他版本,可以复制上面链接将版本号改对对应的即可。
在D盘下创建kube文件夹,将kubectl存放在kube文件夹下。将D:\kube\kubectl添加到PATH环境变量中
$ kubectl version
创建~/.kube文件夹,将master上的config文件拉取到本地, 存放在~/.kube/文件夹下
$ kubectl get nodes
$ kubectl get pods -n kube-system
从此链接中下载ktctl的可执行文件
将ktctl存放在kube文件夹下。将D:\kube\ktctl添加到PATH环境变量中
$ ktctl -v
本文档的命令行使用的是git bash,一般开发人员都会安装git,可以直接来用。如果你比较倾向于windows原生的cmd,记得要安装ssh和curl。kt启动时要使用ssh,curl是用测试连接。
默认方式
执行命令:
# 注意 kt在windows下只能使用socks5模式
$ ktctl -d connect --method socks5
之后,ktctl将在本地创建一个socks5代理。并遵循日志输出设置http_proxy环境变量。
输出:
4:31PM INF ==============================================================
4:31PM INF Start SOCKS5 Proxy: export http_proxy=socks5://127.0.0.1:2223
4:31PM INF ==============================================================
设置环境变量:
# 另开一个窗口
# 设置环境变量 以下设置二选一
## windows cmd
$ set http_proxy=socks5://127.0.0.1:2223
## git bash
$ export http_proxy=socks5://127.0.0.1:2223
访问集群内服务:
$ curl http://<POD_IP>:<PORT>
$ curl http://<CLUSTER_IP>:<PORT>
注意:上面的方式不能使用service名字访问服务
扩展
由于windows下只能使用socks5模式,上面的方式达不到我们的一些要求。下面扩展一些方式。使用以下方式的前提是你的用户必须对hosts文件有读写权限
# --method=socks5为使用socks5模式 --dump2hosts 会将命名空间中的所有服务同步到hosts文件。
$ ktctl connect --method=socks5 --dump2hosts
# 设置环境变量 以下设置二选一
## windows cmd
$ set http_proxy=socks5://127.0.0.1:2223
## git bash
$ export http_proxy=socks5://127.0.0.1:2223
#访问集群内服务
$ curl http://<POD_IP>:<PORT> #本地直接访问PodIP
$ curl http://<CLUSTER_IP>:<PORT> # 本地直接访问ClusterIP
$ curl http://<SVC_NAME>:<PORT> #使用Service的域名访问
# 默认的ktctl启动后会在default命名空间创建一个deployment, service的访问方式只能在default命名空间才能使用
# 此方式可以指定命名空间 会在指定的命名空间创建一个deployment 让service的访问方式可以用于指定的命名空间
$ ktctl -n test connect --method=socks5 --dump2hosts
# 设置环境变量 以下设置二选一
## windows cmd
$ set http_proxy=socks5://127.0.0.1:2223
## git bash
$ export http_proxy=socks5://127.0.0.1:2223
#访问集群内服务
$ curl http://<POD_IP>:<PORT> #本地直接访问PodIP
$ curl http://<CLUSTER_IP>:<PORT> # 本地直接访问ClusterIP
$ curl http://<SVC_NAME>:<PORT> #使用Service的域名访问
# 上面的是指定一个命名空间 这里配置多个命名空间
# 配置test,monitoring两个命名空间
$ ktctl -d connect --dump2hosts --method=socks5 --dump2hostsNS=test --dump2hostsNS=monitoring
# 设置环境变量 以下设置二选一
## windows cmd
$ set http_proxy=socks5://127.0.0.1:2223
## git bash
$ export http_proxy=socks5://127.0.0.1:2223
#访问集群内服务
$ curl http://<POD_IP>:<PORT> #本地直接访问PodIP
$ curl http://<CLUSTER_IP>:<PORT> # 本地直接访问ClusterIP
$ curl http://<SVC_NAME>.<namespace_name>:<PORT> #本地访问带有命名空间的service
有兴趣的可以在浏览器上安装swichyomeaga代理插件,可以直接在web端访问kubernetes内部服务。这里不做过多演示
转自: