简介
Spring Cloud Kubernetes 是spring官方集成Kubernetes的一个框架.可以直接将springboot项目使用Kubernetes做为注册中心.很方便,但是我们本地开发的时候很难进行调试,因为我们本地没有Kubernetes环境.
下面介绍一种能够本地开发的方式
KT-Connect
KtConnect(Kt为Kubernetes Toolkit集群工具包的简写)是一款基于Kubernetes环境用于提高本地测试联调效率的小工具。
特性
- Connect:建立数据代理通道,实现本地服务直接访问Kubernetes集群内网(包括Pod IP和Service域名)
- Exchange:让集群服务流量重定向到本地,实现快速验证本地版本和调试排查问题
- Mesh:创建路由规则重定向特定流量,实现多人协作场景下互不影响的本地调试
- Preview:暴露本地服务到集群,实现无需发布即可在线预览集成效果
就是可以使用本地服务调用k8s里面的服务,方便我们开发.
前置条件
- 已有k8s集群
- 本地电脑安装kubectl工具
- 能够获取到1集群中的config文件
- 安装KtConnect
安装
步骤1,步骤2,步骤3 自行安装
安装完kubectl后 用户目录会出现 .kube 文件夹
图中的config就是k8s的配置文件,将服务器k8s集群的配置文件复制到我们电脑的文件夹下面即可.
完毕之后使用命令,即可本地管理远程的k8s集群
之所以这样做有两个目的
- idea启动项目,可以直接使用环境变量去连接服务器的k8s集群
- KtConnect可以根据环境变量连接到k8s集群
安装KtConnect
https://github.com/alibaba/kt-connect/blob/master/docs/zh-cn/guide/downloads.md
下载并解压,将包中的wintun.dll和可执行文件ktctl.exe一起放到PATH环境变量指定的任意位置。
将解压完的文件放在**.kube** 文件下,然后设置环境变量
然后使用命令行
ktctl connect
最后出现这样说明代理创建成功了
创建成功后,集群里会出现这样一个pod
就是它来帮助我们转发
最后就是操作了
本地启动网关程序
上面的方法是获取所有的服务,我们请求一下接口
可以看到确实获取了这么多的服务
接下来我们调用远程的服务看一看
网关服务里面配置了两个服务 test1和test2
test1里面有两个接口
我们使用本地启动的网关访问一下
http://localhost:8080/k8s-test1/getUser?uid=1
http://localhost:8080/k8s-test1/index
可以看到这两个rpc的服务也可以调用通.证明我们已经可以在本地愉快的开发了.
以上只是使用了KT-Connect 的connect 功能,其他的功能自己尝试一下吧