此文档用于记录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
从此链接中下载kubectl的可执行文件,我这里下载的是对应我们线上kubernetes版本的kubectl。如果想要下载其他版本,可以复制上面链接将版本号改对对应的即可。
- 将kubectl添加到PATH环境变量
在D盘下创建kube文件夹,将kubectl存放在kube文件夹下。将D:\kube\kubectl添加到PATH环境变量中
- 执行命令查看已安装的 kubectl 版本号
$ kubectl version
配置kubectl
- 将kubectl config文件存放在~/.kube/下。 ~代表当前的用户目录
创建~/.kube文件夹,将master上的config文件拉取到本地, 存放在~/.kube/文件夹下
- 验证配置结果
$ kubectl get nodes
$ kubectl get pods -n kube-system
安装配置kt
安装ktctl
- 下载ktctl
从此链接中下载ktctl的可执行文件
- 将ktctl添加到PATH环境变量
将ktctl存放在kube文件夹下。将D:\kube\ktctl添加到PATH环境变量中
- 执行命令查看已安装的ktctl版本号
$ ktctl -v
使用ktctl
本文档的命令行使用的是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文件有读写权限
- 配置可以使用service名字访问
# --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内部服务。这里不做过多演示