SpringBoot通过kt-connect+kubectl进行本地调试k8s服务

前言

本地服务a想调用k8s里的服务b,但是本地a和b网络不互通,调用的时候会报连接超时。

这时候我们就可以通过kt-connect+kubectl进行代理访问k8s服务里的b。这样就可以本地调试生产环境的bug了。

以windows为例

下载kubectl

《下载kubectl》

搜索client-windows进行下载

解压kubectl

下载kt-connect

《进入到kt-connect官网》

解压,然后把压缩包里的全部文件放到kubectl.exe的同级目录下

配置环境变量

win + R运行cmd

检查kubectl是否正常

shell 复制代码
kubectl version

检查ktctl是否正常

shell 复制代码
ktctl --version

配置ktctl访问k8s内部网络

Rancher下载配置文件KubeConfig

在用户目录下创建.kube文件夹

在.kube创建config文件

内容为你下载的KubeConfig

亦或是把你下载的KubeConfig放到.kube目录下,如下所示:

ktctl连接k8s网络

--kubeconfig就是我们从rancher上面下载的KubeConfig配置文件

--namespace就是我们k8s服务所在的命名空间

--image就是下载的kt-connect-shadow镜像到私有harbor镜像仓库

需要管理员运行cmd

powershell 复制代码
ktctl --kubeconfig=C:\Users\X\.kube\hihisprod.yaml --namespace=prod --image=myharbor.com/ops-docker/kt-connect-shadow:v0.3.7 --dnsMode=hosts connect

出现以下内容即为连接成功

powershell 复制代码
All looks good, now you can access to resources in the kubernetes cluster

查看rancher上面是否启动成功

本地启动SpringBoot即可进行访问k8s的其它服务

properties或yml文件不能配置"${xxx.xxx}"这种无法在本地访问的内容,

如果rancher上面配置的就是这种,则需要改为具体的值。

yaml 复制代码
spring:
  application:
    name: app

app:
  #这种可以
  name: ${spring.application.name}
  #这种不行,因为在本地服务找不到
  name2: ${name2}

注意事项

下面这个ktctl命令提示符窗口不能关闭

内网k8s无法拉取阿里云的kt-connect-shadow

安装docker-desktop,然后执行以下命令,拉取镜像以后,推送到内网harbor私有docker镜像仓库即可。

powershell 复制代码
docker pull registry.cn-hangzhou.aliyuncs.com/rdc-incubator/kt-connect-shadow:v0.3.7
相关推荐
伊信几秒前
Spring AI 基础学习与应用
java·后端
步行cgn19 分钟前
Spring 通过 factory-method 实例化 Bean 详解与常见错误排查
java·后端
lv__pf19 分钟前
seata【实战 msb】
java·开发语言·后端
Ricon组态薄荷糖21 分钟前
Ricon组态系统:工业组件开发指南与实践
前端·后端·物联网
旺仔不是程序员22 分钟前
相关子查询与性能优化:PostgreSQL 逐行执行的代价与 JOIN 重写
数据库·后端·sql
右耳朵猫AI27 分钟前
PHP周刊2026W38 | Laravel AI可观测、Symfony三版本、Webhook零信任、事件溯源架构
后端·php·laravel
沙蒿同学36 分钟前
我把架构约定编译成了会变红的测试:Wails v2 + Go + Vue3 桌面脚手架实战
前端·后端·github
量化分析码农38 分钟前
【Python量化数据工程实战 #01】拉下来的行情全是"脏数据"?停牌、跳空、异常值一站式清洗
后端
专业程序开发源40 分钟前
springboot篮球联赛管理系统13635-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
毕业设计7031 小时前
(免费领源码) SpringBoot 游戏交易平台17600-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
java·spring boot·mysql·决策树·mybatis·idea·推荐算法