基于KtConnect实现本地与kubernetes集群互通
# 背景
由于本地电脑资源紧缺,在开发微服务时,计划将 Nacos、MySQL、Gateway 等中间件部署在云服务器的容器中,而 Nacos 需要网络互通才可以访问服务。
# 步骤
以 Windows 为例
# 创建文件夹.kube
在当前用户目录: C:\Users\用户名
下创建 .kube
文件夹
# 下载 kubernetes 配置文件
kubernetes 集群任意节点
~/.kube/config
放到 .kube
文件夹
笔记
打开本地的 config
文件看看,默认的是 https://lb.kubesphere.local:6443
,我本地无法解析这个域名,需要修改成能访问到的域名或 ip。
# 下载 kt-connect
https://alibaba.github.io/kt-connect/#/zh-cn/guide/downloads (opens new window)
# 运行
解压 kt-connect
管理员权限运行
ktctl.exe connect
终端输出以下内容表示成功。
11:49PM INF ---------------------------------------------------------------
11:49PM INF All looks good, now you can access to resources in the kubernetes cluster
11:49PM INF ---------------------------------------------------------------
# 示例
# 注册本地正在开发的微服务到 Nacos
# 创建服务
ktctl run <服务名称> --port <端口> --expose
# 查看服务虚拟 IP
略
# 运行本地微服务
手动指定注册到 Nacos 的 ip
spring.cloud.nacos.discovery.ip=服务虚拟IP
# 总结
# 优点
通过以上操作即可实现在本地访问集群内网,比如通过 mongodb.xxxxx-dev1
就能连接到相应 Service,而无需修改 hosts。
# 缺点
此操作适合于局域网操作,通常不会将 k8s api 地址暴露在公网环境。
# 参考
上次更新: 2023/06/10, 18:45:20