dfz2VJ.jpg

此文档用于记录windows的kt的安装配置

此文档环境:

​ Kubernetes1.14.3 kubectl1.14.3 ktctl_0.0.13-rc7 windows7旗舰版

kt介绍

更有效地管理和与您的Kubernetes开发环境集成。详细文档访问链接,项目地址访问github

d2ZsPJ.png

特征

  • 连接:直接访问远程Kubernetes集群。KT Connect sshuttle用作访问远程Kubernetes集群网络的vpn工具。
  • 交换:开发人员可以交换工作量以将请求重定向到本地应用程序。
  • 网格:您可以在本地主机中创建网格版本,然后重定向到本地
  • 仪表板:仪表板视图可以帮助您了解环境的使用方式。

安装配置kubectl

安装kubectl

  • 下载kubectl

从此链接中下载kubectl的可执行文件,我这里下载的是对应我们线上kubernetes版本的kubectl。如果想要下载其他版本,可以复制上面链接将版本号改对对应的即可。

  • 将kubectl添加到PATH环境变量

在D盘下创建kube文件夹,将kubectl存放在kube文件夹下。将D:\kube\kubectl添加到PATH环境变量中

  • 执行命令查看已安装的 kubectl 版本号
1
$ kubectl version

配置kubectl

  • 将kubectl config文件存放在~/.kube/下。~代表当前的用户目录

创建~/.kube文件夹,将master上的config文件拉取到本地, 存放在~/.kube/文件夹下

  • 验证配置结果
1
2
$ kubectl get nodes
$ kubectl get pods -n kube-system

安装配置kt

安装ktctl

  • 下载ktctl

从此链接中下载ktctl的可执行文件

  • 将ktctl添加到PATH环境变量

将ktctl存放在kube文件夹下。将D:\kube\ktctl添加到PATH环境变量中

  • 执行命令查看已安装的ktctl版本号
1
$ ktctl -v

使用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文件有读写权限

  • 配置可以使用service名字访问
 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