使用 telepresence 连接 k3s 单节点集群环境进行本地调试

最近公司买了套代码做二开。项目使用了k3s部署,整个项目配置都是设置了集群内项目路径。每次调试都要修改代码后,打包部署后才能看到效果。非常麻烦。所以最近一直在想如何能本地连接集群环境进行调试,终于搞成功了。简单记录一下。

我的开发机为Mac,下面以Mac电脑说明:

1.前置工作

服务器上有已经有集群环境

本地开发机安装了 kubectl ,helm

text
复制代码
brew install kubectl brew install helm

在cd ~/.kube 目录配置kubectl 的config文件

text
复制代码
文件一般来源于服务器 ,我使用的是k3s环境文件路径为 /etc/rancher/k3s/k3s.yaml 将内容复制出来,放到开发机的 ~/.kube目录下的config文件。如果没有手动创建

2.安装社区版 telepresence

text
复制代码
brew install telepresenceio/telepresence/telepresence-oss #查看安装是否成功 telepresence version

3.通过telepresence 在服务器安装社区版 Traffic Manager

text
复制代码
telepresence helm install

4.如果第3步失败,是因为Traffic Manager镜像下载失败。可以在网络支持的环境手动下载镜像后,加载到服务器docker中。并重新执行 telepresence helm install。

text
复制代码
#下载社区版Traffic Manager 镜像 tel2:2.22.6 版本要与你安装的telepresence 版本一致 docker pull docker pull ghcr.io/telepresenceio/tel2:2.22.6

5.建立telepresence 连接

text
复制代码
telepresence connect --namespace test1,test2 #如果你需要拦截流量,要再连接前先切kubectl 上下文到服务所在的工作空间 kubectl config set-context --current --namespace=test1

6.退出telepresence 连接

text
复制代码
telepresence quit telepresence quit -s

7.如果要调试的本地服务调用了环境中的 服务或 数据库等需要将配置中的服务路径改为集群中服务名。如:

text
复制代码
mysql.test.svc.cluster.local:3306

如果有用到的其他配置也要加入到idear运行项目时的环境变量中。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
武
下载 APP