idea配置开发环境k8s集群信息,进行本地调试java代码

安装

  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
设置镜像
ktctl config set global.image 10.50.9.38:80/sanxia-project/sanxia-docker/kt-connect-shadow:v0.3.7
启动连接多命名空间 1.21.1版本
ktctl -n devops connect --dnsMode hosts:devops,devops-middleware

# 设置环境变量 以下设置二选一
## 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启动命令

命令查看调试说明

在这里插入图片描述
在这里插入图片描述
启动成功后切忌不要退出此进程,否则无法访问远程的服务
如果遇到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
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值