k8s多集群管理工具kubecm

文章目录

一、概述

KubeCM 是一款使用 Go 语言开发的 KubeConfig 管理工具,功能非常的强大。它不但能实现多个 KubeConfig 文件的自动合并,还能很方便的管理多个 Kubernetes 集群环境,比如:增加、删除、重命名不同集群环境等。

它在多集群环境中简化了配置的一致性管理、集中控制、自动化更新和配置审计,适用于多环境部署、大规模集群管理、CI/CD流程以及故障恢复场景,它的出现解决了随着Kubernetes在企业级应用中普及所面临的多集群管理复杂性和效率问题。

免责声明:一般情况下我们用不上,所以看看就好

二、安装

1、官网链接

GitHub地址

2、各平台安装

2.1、MacOS

使用 brew 或者直接下载二进制可执行文件

bash 复制代码
brew install kubecm

2.2、Linux

下载二进制可执行文件,将其移动到系统路径下

这里我将压缩包放到了/tmp/目录下

bash 复制代码
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、验证

bash 复制代码
kubecm

2、配置kubecm自动补全(选做)

2.1、Bash

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

shell 复制代码
# 如果你当前的 zsh 环境中尚未激活自动补全的功能,你需要先激活它。你
# 可以通过下面的命令来激活:

$ echo "autoload -U compinit; compinit" >> ~/.zshrc

# 可以通过运行一次下面的命令来为将来的每一个 Shell 会话激活自动补全:
$ kubecm completion zsh > "${fpath[1]}/_kubecm"

在执行完毕后,你需要重新打开一个新的终端才能使补全脚本生效。

2.3、fish

shell 复制代码
# 可以通过运行一次下面的命令来为当前的 Shell 会话激活自动补全:
$ kubecm completion fish | source

# 可以通过运行一次下面的命令来为将来的每一个 Shell 会话激活自动补全:
$ kubecm completion fish > ~/.config/fish/completions/kubecm.fish

在执行完毕后,你需要重新打开一个新的终端才能使补全脚本生效。

2.4、PowerShell

powershell 复制代码
# 可以通过运行一次下面的命令来为当前的 Shell 会话激活自动补全:
PS> kubecm completion powershell | Out-String | Invoke-Expression

# 为将来的每一个 Shell 会话激活自动补全,请执行下面的命令:
PS> kubecm completion powershell > kubecm.ps1
# 然后在 PowerShell 的 profile 中引入这个文件。

3、创建存放kubeconfig文件的目录

bash 复制代码
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

手动一个个选择添加

bash 复制代码
kubecm add -f cluster2-config
kubecm add -f cluster3-config

4.2、kubecm merge -f

选定目录批量添加

最后一项是询问是否覆盖当前~/.kube/config ,保险起见还是将本地的config复制一份再合并

bash 复制代码
kubecm merge -f ./config 

5、列出可供切换的集群信息

6、切换集群

猫猫通过上下键移动,回车即选中

但还是推荐使用kubectl config use-context <cluster-name> 来切换

bash 复制代码
kubecm s

四、命令使用

bash 复制代码
# 查看 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>
相关推荐
景煜拾年27 分钟前
InnoAI SQL 助手
运维·数据库·笔记·sql
无人生还别怕1 小时前
如何搭建docker仓库(轻量级)registry
linux·运维·docker·云原生·容器·registry·openanolisos
分布式存储与RustFS1 小时前
Hudi 表想摆脱 HDFS 绑定?用 Spark + Hudi 直接写进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
zhengfei6112 小时前
CVE-2026-98432:Linux 内核 TCP 释放后重用漏洞,CVSS 9.8 但补丁覆盖极不均衡
linux·运维·tcp/ip
逐流人2 小时前
DevOps 入门实战(一):从 CI/CD 概念到 Jenkins 自动构建部署
运维·云原生·云计算·jenkins·devops
xyzzklk2 小时前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓
叼烟扛炮4 小时前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
飞飞传输11 小时前
飞驰云联文件交换建设方法论:从单点传输到持续治理
大数据·运维·安全
Ruiery12 小时前
Linux 6.6内核内存管理深度解析(十五):CMA 连续内存分配器
linux·运维·服务器
测试界的小码农13 小时前
【Linux 命令实战(01):认识 Linux 终端,从零掌握第一个命令】
linux·运维·服务器