Kubecm:管理你的 kubeconfig
2 分钟阅读
前言
该项目脱胎于 mergeKubeConfig 项目,最早写该项目的目的是在一堆杂乱无章的 kubeconfig 中自由的切换。随着需要操作的 Kubernetes 集群越来越多,在不同的集群之间切换也越来越麻烦,而操作 Kubernetes 集群的本质不过是通过 kubeconfig 访问 Kubernetes 集群的 API Server,以操作 Kubernetes 的各种资源,而 kubeconfig 不过是一个 yaml 文件,用来保存访问集群的密钥,最早的 mergeKubeConfig 不过是一个操作 yaml 文件的 Python 脚本。而随着 golang 学习的深入,也就动了重写这个项目的念头,就这样 kubecm 诞生了。
kubecm
kubecm 由 golang 编写,支持 Mac Linux 和 windows 平台,delete rename switch 提供比较实用的交互式的操作,目前的功能包括:
- add :添加新的
kubeconfig到$HOME/.kube/config中 - completion :命令行自动补全功能
- delete:删除已有的
context,提供交互式和指定删除两种方式 - merge:将指定目录中的
kubeconfig合并为一个kubeconfig文件 - rename:重名指定的
context,提供交互式和指定重命名两种方式 - switch:交互式切换
context
安装
kubecm 支持 Mac Linux 和 windows 平台,安装方式也比较简单:
MacOS
Info
note
使用
brew 或者直接下载二进制可执行文件 | |
Linux
Info
note
下载二进制可执行文件
| |
Windows
Info
note
下载二进制可执行文件,并将文件移动到
$PATH 中即可命令行自动补全
以 zsh 为例,在 $HOME/.zshrc 中添加
| |
然后使用 source 命令,使其生效
| |
之后,在输入 kubecm 后按 tab 键,就可以看到命令行自动补全的内容

操作 kubeconfig
Info
查看
| |
添加
| |
删除
| |
合并
| |
重命名
| |
切换默认 namespace
| |
效果展示

视频介绍
结语
kubecm 项目的初衷为学习 golang 并熟悉 client-go 的使用,随着使用的深入,断断续续增加了不少功能,开发出了一个看上去还算正规的项目。总的来说都是根据自己的喜好来开发的业余项目,欢迎各位通过 ISSUE 来进行交流和讨论。