安装

  1. 确认开发环境kubectl版本
  2. 下载对应的windows版本
    https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md#v1243
  3. 下载后解压保存在指定文件夹中,然后配置环境变量
  4. 验证kubectl配置以及版本(版本差需要控制在和集群版本的±1,否则后续连接集群操作会报错)
  5. 配置config文件,在c盘用户目录下创建.kube文件夹,创建config文件,将集群config内容复制过来
  6. 验证集群是否可以访问
  7. 安装kt-connect
    用于连接namespaces中的服务,相当于一个vpn
    下载地址 下载后解压放在和kubectl一个文件夹中
  8. 验证kt-connect
  9. 修改hosts权限,用户需要对hosts文件有读写权限,因为本地idea起服务后 ,需要通过service的域名访问其它服务

    如果后续idea启动kt-connect发出权限报错问题,进入安全-编辑,给当前用户读写权限

调试

调试说明

# 默认的ktctl启动后会在default命名空间创建一个deployment, service的访问方式只能在default命名空间才能使用
# 此方式可以指定命名空间 会在指定的命名空间devops创建一个deployment 让service的访问方式可以用于指定的命名空间, 
# --dump2hosts 会将命名空间中的所有服务同步到hosts文件。
$ ktctl -n devops connect --method=socks5 --dump2hosts 
#多个命名空间
$ ktctl -d connect --dump2hosts --method=socks5  --dump2hostsNS=devops --dump2hostsNS=redis
#无法连接外网 
#先通过docker下载kt-connect-shadow镜像: registry.cn-hangzhou.aliyuncs.com/rdc-incubator/kt-connect-shadow:0.0.13-rc11
#上传到内网仓库中去,使用--image指定内网仓库
$ ktctl --debug --image=ip:port/devops/kt-connect-shadow:0.0.13-rc11 --namespace=devops 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. 设置环境变量
命令查看调试说明

进入idea,在Terminal输入kt-connect启动命令

命令查看调试说明

idea docker 插件 容器版本自动变更 idea kubernetes插件_kubernetes


idea docker 插件 容器版本自动变更 idea kubernetes插件_ide_02


启动成功后切忌不要退出此进程,否则无法访问远程的服务

如果遇到hosts权限不够的问题,请查看安装-9指定用户修改权限

  1. idea配置参数

    A. 配置
-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=2223

B. 配置

KUBERNETES_NAMESPACE=devops;socksProxyHost=127.0.0.1;socksProxyPort=2223

网上查找资料来看,有些人配置A即可访问集群服务,有些人配置B即可访问集群访问,还有些人需要全部都配置,具体配哪个还是全部配置可以自行调试

  1. 验证
    启动项目,postman调用接口(所调用的接口最好有fegin调用,这样才能验证是否成功)

踩坑1

当k8s中的服务类型为NodePort时,是使用pod的ip。kt-connect不会在host写入pod的ip而是写入clusterIp。。目前没有找到好的办法让其自动处理,只有手动修改一下host里的ip

idea docker 插件 容器版本自动变更 idea kubernetes插件_kubernetes_03