k8s多集群管理工具kubecm
目录
一、概述
KubeCM
是一款使用 Go
语言开发的 KubeConfig
管理工具,功能非常的强大。它不但能实现多个 KubeConfig
文件的自动合并,还能很方便的管理多个 Kubernetes
集群环境,比如:增加、删除、重命名不同集群环境等。
它在多集群环境中简化了配置的一致性管理、集中控制、自动化更新和配置审计,适用于多环境部署、大规模集群管理、CI/CD流程以及故障恢复场景,它的出现解决了随着Kubernetes在企业级应用中普及所面临的多集群管理复杂性和效率问题。
免责声明:一般情况下我们用不上,所以看看就好
二、安装
1、官网链接
2、各平台安装
2.1、MacOS
使用 brew
或者直接下载二进制可执行文件
brew install kubecm
2.2、Linux
下载二进制可执行文件,将其移动到系统路径下
这里我将压缩包放到了/tmp/目录下
tar zxvf /tmp/kubecm_v0.30.0_Linux_x86_64.tar.gz
mv /tmp/kubecm /usr/local/bin
2.3、Windows
下载二进制可执行文件,并将文件路径添加到 $PATH
中即可
三、实例
简单使用六台虚拟机做三个小集群
涉及集群 | 对应ip地址 | kubeconfig文件 |
---|---|---|
k8s-master1 、 k8s-node1 |
192.168.112.10 、 192.168.112.20 |
config |
k8s-master2 、 k8s-node2 |
192.168.112.30 、 192.168.112.40 |
cluster2-config |
k8s-master3 、 k8s-node3 |
192.168.112.50 、 192.168.112.60 |
cluster3-config |
1、验证
kubecm
2、配置kubecm自动补全(选做)
2.1、Bash
$ source <(kubecm completion bash)
# 可以通过运行一次下面的命令来为将来的每一个 Shell 会话激活自动补全:
# Linux:
$ kubecm completion bash > /etc/bash_completion.d/kubecm
# macOS:
$ kubecm completion bash > /usr/local/etc/bash_completion.d/kubecm
在执行完毕后,你需要重新打开一个新的终端才能使补全脚本生效。
2.2、Zsh
# 如果你当前的 zsh 环境中尚未激活自动补全的功能,你需要先激活它。你
# 可以通过下面的命令来激活:
$ echo "autoload -U compinit; compinit" >> ~/.zshrc
# 可以通过运行一次下面的命令来为将来的每一个 Shell 会话激活自动补全:
$ kubecm completion zsh > "${fpath[1]}/_kubecm"
在执行完毕后,你需要重新打开一个新的终端才能使补全脚本生效。
2.3、fish
# 可以通过运行一次下面的命令来为当前的 Shell 会话激活自动补全:
$ kubecm completion fish | source
# 可以通过运行一次下面的命令来为将来的每一个 Shell 会话激活自动补全:
$ kubecm completion fish > ~/.config/fish/completions/kubecm.fish
在执行完毕后,你需要重新打开一个新的终端才能使补全脚本生效。
2.4、PowerShell
# 可以通过运行一次下面的命令来为当前的 Shell 会话激活自动补全:
PS> kubecm completion powershell | Out-String | Invoke-Expression
# 为将来的每一个 Shell 会话激活自动补全,请执行下面的命令:
PS> kubecm completion powershell > kubecm.ps1
# 然后在 PowerShell 的 profile 中引入这个文件。
3、创建存放kubeconfig文件的目录
mkdir ~/config
scp root@192.168.112.30:~/.kube/config ~/config
scp root@192.168.112.50:~/.kube/config ~/config
cp ~/.kube/config ~/config/
4、添加到 $HOME/.kube/config
4.1、kubecm add -f
手动一个个选择添加
kubecm add -f cluster2-config
kubecm add -f cluster3-config
4.2、kubecm merge -f
选定目录批量添加
最后一项是询问是否覆盖当前
~/.kube/config
,保险起见还是将本地的config复制一份再合并
kubecm merge -f ./config
5、列出可供切换的集群信息
6、切换集群
猫猫通过上下键移动,回车即选中
但还是推荐使用
kubectl config use-context <cluster-name>
来切换
kubecm s
四、命令使用
# 查看 k8s 集群列表
kubecm list
# 重命名 k8s 集群名称
kubecm rename <cluster-name>
# 添加所有 k8s 集群别名
kubecm alias -o bash
kubecm alias -o zsh
# 切换 k8s 集群
kubecm switch
# 切换 k8s 集群命名空间
kubecm ns
# 删除 k8s 集群
kubecm delete <cluster-name>