太赞了,这个神器竟然能分分钟将多个 kubeconfig 合并成一个!

相信很多人都会经常部署不同的 Kubernetes 集群,也会经常删除不再使用的 Kubernetes 集群,如果要在本地通过 kubectl 客户端与集群进行交互,就需要不同的 kubeconfig,然后通过环境变量或命令行参数不断来回切换 kubeconfig,或者手动将多个 kubeconfig 合并为一个,然后通过 kubectl 插件 kubectx[1] 或 kubie 来切换上下文环境(即 context)。

那么有没有一种方法可以自动将多个 kubeconfig 文件合并成一个呢?手动合并也太麻烦了啊!

有个小哥和我也有同样的苦恼,索性写了一个自动化工具 kubectx.manager[2],可以将多个 kubeconfig 合并成一个,也可以从现有的 kubeconfig 文件中删除不想要的 context

安装方法很简单,首先需要有 nodejs 环境,然后通过下面的命令安装:

$ npm install -g git+https://[email protected]/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


你可能还喜欢

点击下方图片即可阅读

太赞了,这个神器竟然能分分钟将多个 kubeconfig 合并成一个!_第1张图片

最华丽的 Kubernetes 桌面客户端:Lens

云原生是一种信仰 ????

码关注公众号

后台回复◉k8s◉获取史上最方便快捷的 Kubernetes 高可用部署工具,只需一条命令,连 ssh 都不需要!

点击 "阅读原文" 获取更好的阅读体验!

❤️给个「在看」,是对我最大的支持❤️

你可能感兴趣的:(太赞了,这个神器竟然能分分钟将多个 kubeconfig 合并成一个!)