
前言本地服务a想调用k8s里的服务b但是本地a和b网络不互通调用的时候会报连接超时。这时候我们就可以通过kt-connectkubectl进行代理访问k8s服务里的b。这样就可以本地调试生产环境的bug了。以windows为例下载kubectl《下载kubectl》搜索client-windows进行下载解压kubectl下载kt-connect《进入到kt-connect官网》解压然后把压缩包里的全部文件放到kubectl.exe的同级目录下配置环境变量win R运行cmd检查kubectl是否正常kubectl version检查ktctl是否正常ktctl--version配置ktctl访问k8s内部网络Rancher下载配置文件KubeConfig在用户目录下创建.kube文件夹在.kube创建config文件内容为你下载的KubeConfig亦或是把你下载的KubeConfig放到.kube目录下如下所示ktctl连接k8s网络–kubeconfig就是我们从rancher上面下载的KubeConfig配置文件–namespace就是我们k8s服务所在的命名空间–image就是下载的kt-connect-shadow镜像到私有harbor镜像仓库需要管理员运行cmdktctl--kubeconfigC:\Users\X\.kube\hihisprod.yaml--namespaceprod--imagemyharbor.com/ops-docker/kt-connect-shadow:v0.3.7--dnsModehosts connect出现以下内容即为连接成功All looks good,now you can access to resources in the kubernetes cluster查看rancher上面是否启动成功本地启动SpringBoot即可进行访问k8s的其它服务properties或yml文件不能配置${xxx.xxx}这种无法在本地访问的内容如果rancher上面配置的就是这种则需要改为具体的值。spring:application:name:appapp:#这种可以name:${spring.application.name}#这种不行因为在本地服务找不到name2:${name2}注意事项下面这个ktctl命令提示符窗口不能关闭内网k8s无法拉取阿里云的kt-connect-shadow安装docker-desktop然后执行以下命令拉取镜像以后推送到内网harbor私有docker镜像仓库即可。docker pull registry.cn-hangzhou.aliyuncs.com/rdc-incubator/kt-connect-shadow:v0.3.7Windows 加管理员权限启动bat脚本kubeconfig文件改成你自己rancher上面的yaml文件namespace改成你自己rancher上面的命名空间image改成你自己harbor上面存放的kt-connect-shadowecho off :: 检查管理员权限 fltmcnul21||(echorequest admin privileges... PowerShell Start-Process-FilePath%0-VerbRunAsexit/b)ktctl--kubeconfigC:/Users/x/.kube/hihisprod.yaml--namespaceprod--imageharbor.bsoft.com.cn:5000/ops-docker/kt-connect-shadow:v0.3.7--dnsModehosts connect