此文档用于记录windows的kt的安装配置
此文档环境:
Kubernetes1.14.3 kubectl1.14.3 ktctl_0.0.13-rc7 windows7旗舰版
kt介绍
更有效地管理和与您的Kubernetes开发环境集成。详细文档访问链接,项目地址访问github
特征
- 连接:直接访问远程Kubernetes集群。KT Connect
sshuttle
用作访问远程Kubernetes集群网络的vpn工具。
- 交换:开发人员可以交换工作量以将请求重定向到本地应用程序。
- 网格:您可以在本地主机中创建网格版本,然后重定向到本地
- 仪表板:仪表板视图可以帮助您了解环境的使用方式。
安装配置kubectl
安装kubectl
从此链接中下载kubectl的可执行文件,我这里下载的是对应我们线上kubernetes版本的kubectl。如果想要下载其他版本,可以复制上面链接将版本号改对对应的即可。
在D盘下创建kube文件夹,将kubectl存放在kube文件夹下。将D:\kube\kubectl添加到PATH环境变量中
配置kubectl
- 将kubectl config文件存放在~/.kube/下。~代表当前的用户目录
创建~/.kube文件夹,将master上的config文件拉取到本地, 存放在~/.kube/文件夹下
1
2
|
$ kubectl get nodes
$ kubectl get pods -n kube-system
|
安装配置kt
安装ktctl
从此链接中下载ktctl的可执行文件
将ktctl存放在kube文件夹下。将D:\kube\ktctl添加到PATH环境变量中
使用ktctl
本文档的命令行使用的是git bash,一般开发人员都会安装git,可以直接来用。如果你比较倾向于windows原生的cmd,记得要安装ssh和curl。kt启动时要使用ssh,curl是用测试连接。
默认方式
执行命令:
1
2
|
# 注意 kt在windows下只能使用socks5模式
$ ktctl -d connect --method socks5
|
之后,ktctl将在本地创建一个socks5代理。并遵循日志输出设置http_proxy环境变量。
输出:
1
2
3
|
4:31PM INF ==============================================================
4:31PM INF Start SOCKS5 Proxy: export http_proxy=socks5://127.0.0.1:2223
4:31PM INF ==============================================================
|
设置环境变量:
1
2
3
4
5
6
|
# 另开一个窗口
# 设置环境变量 以下设置二选一
## windows cmd
$ set http_proxy=socks5://127.0.0.1:2223
## git bash
$ export http_proxy=socks5://127.0.0.1:2223
|
访问集群内服务:
1
2
|
$ curl http://<POD_IP>:<PORT>
$ curl http://<CLUSTER_IP>:<PORT>
|
注意:上面的方式不能使用service名字访问服务
扩展
由于windows下只能使用socks5模式,上面的方式达不到我们的一些要求。下面扩展一些方式。使用以下方式的前提是你的用户必须对hosts文件有读写权限
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# --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的域名访问
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 默认的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的域名访问
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 上面的是指定一个命名空间 这里配置多个命名空间
# 配置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内部服务。这里不做过多演示
参考链接
官方文档
github
Author
dylan
LastMod
2020-08-27
License
如需转载请注明文章作者和出处。谢谢!