相信很多人都会经常部署不同的 Kubernetes
集群,也会经常删除不再使用的 Kubernetes
集群,如果要在本地通过 kubectl
客户端与集群进行交互,就需要不同的 kubeconfig
,然后通过环境变量或命令行参数不断来回切换 kubeconfig,或者手动将多个 kubeconfig 合并为一个,然后通过 kubectl 插件 kubectx[1] 或 kubie 来切换上下文环境(即 context
)。
那么有没有一种方法可以自动将多个 kubeconfig 文件合并成一个呢?手动合并也太麻烦了啊!
有个小哥和我也有同样的苦恼,索性写了一个自动化工具 kubectx.manager[2],可以将多个 kubeconfig 合并成一个,也可以从现有的 kubeconfig 文件中删除不想要的 context
。
安装方法很简单,首先需要有 nodejs
环境,然后通过下面的命令安装:
$ npm install -g git+https://git@github.com/AveryanovS/kubectx.manager
假设现在要合并多个 kubeconfig,只需执行命令,不带任何参数,然后就会有一系列交互动作:
$ kubemanager
✔ Select action · merge
✔ Path to current kube config? · /Users/xxx/.kube/config
✔ Path to config to merge? · /Users/xxx/.kube/kubeconfig
✔ Name of new context? · test
Context test created!
Config file updated!
第一行选择
merge
,表示合并。第二行选择需要合并到哪个 kubeconfig,也就是你最终要用的 kubeconfig。
第三行选择需要合并的 kubeconfig。
第四行定义合并后新加入的
context
名称。
删除多余的 context 与上面类似,自己摸索一下。
合并多个 kubeconfig 之后还不行,需要一个能快速切换 context
的工具,不然每次都自己去 kubeconfig 中修改当前的 context
也太 low 了吧!
目前有两款插件都比较好用, kubectx[3] 或 kubie
,我推荐使用 kubie
,功能更强大,使用 rust 语言编写,你可以通过 cargo 来编译安装,也可以从 release 页面直接下载二进制文件。
公众号后台回复◉kubie◉即可获取 kubie 二进制文件的下载地址。
脚注
[1]
kubectx: https://github.com/ahmetb/kubectx
[2]kubectx.manager: https://github.com/AveryanovS/kubectx.manager
[3]kubectx: https://github.com/ahmetb/kubectx
你可能还喜欢
点击下方图片即可阅读
云原生是一种信仰 ????
扫码关注公众号
后台回复◉k8s◉获取史上最方便快捷的 Kubernetes 高可用部署工具,只需一条命令,连 ssh 都不需要!
点击 "阅读原文" 获取更好的阅读体验!
❤️给个「在看」,是对我最大的支持❤️