当前位置: 首页 > news >正文

k8s多集群管理工具kubecm

文章目录

  • 一、概述
  • 二、安装
    • 1、官网链接
    • 2、各平台安装
      • 2.1、MacOS
      • 2.2、Linux
      • 2.3、Windows
  • 三、实例
    • 1、验证
    • 2、配置kubecm自动补全(选做)
      • 2.1、Bash
      • 2.2、Zsh
      • 2.3、fish
      • 2.4、PowerShell
    • 3、创建存放kubeconfig文件的目录
    • 4、添加到 $HOME/.kube/config
      • 4.1、kubecm add -f
      • 4.2、kubecm merge -f
    • 5、列出可供切换的集群信息
    • 6、切换集群
  • 四、命令使用

一、概述

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

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

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

二、安装

1、官网链接

GitHub地址

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

image-20240723232227613

2.3、Windows

下载二进制可执行文件,并将文件路径添加到 $PATH 中即可

image-20240723232355920

三、实例

简单使用六台虚拟机做三个小集群

涉及集群对应ip地址kubeconfig文件
k8s-master1k8s-node1192.168.112.10192.168.112.20config
k8s-master2k8s-node2192.168.112.30192.168.112.40cluster2-config
k8s-master3k8s-node3192.168.112.50192.168.112.60cluster3-config

1、验证

kubecm

image-20240724231249664

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/

image-20240724233703719

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、列出可供切换的集群信息

image-20240725001818933

6、切换集群

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

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

kubecm s

image-20240725002033540

四、命令使用

# 查看 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>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【leetcode】两数之和【简单】( 注释详解:C++map/ C哈希表)
  • 高级java每日一道面试题-2024年7月27日-并发篇-Thread类中的yield方法有什么作用?
  • 基于STM32的多协议通信系统设计与实现
  • 知,已经在行;知行是一件事,不是两件事
  • 大厂面试官问我:ConcurrentHashMap底层原理?【后端八股文十五:Java集合合集】
  • 从 Pandas 到 Polars 三十八:Polars 的“瘦身”功能
  • GPU驱动、CUDA 、cuDNN 和CUDA Toolkit之间的关系(深度学习小白必懂)
  • Linux Gui 窗口对话和窗口操作
  • opencascade AIS_Manipulator源码学习
  • Pytorch 9
  • dsp c6657 SYS/BIOS学习笔记
  • 用Postman Flows打造你的专属API:外部公开,轻松上手!
  • 【python_将列表拆分成几组,分批次写入excel】
  • 美食聚焦 -- 仿大众点评项目技术难点总结
  • langchain 入门指南 - 文本分片及向量化
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • cookie和session
  • JavaScript函数式编程(一)
  • JavaScript中的对象个人分享
  • Java编程基础24——递归练习
  • js
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • node 版本过低
  • Redis在Web项目中的应用与实践
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • unity如何实现一个固定宽度的orthagraphic相机
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 初识 beanstalkd
  • 后端_ThinkPHP5
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 计算机常识 - 收藏集 - 掘金
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 怎么把视频里的音乐提取出来
  • ionic异常记录
  • 回归生活:清理微信公众号
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # 计算机视觉入门
  • #FPGA(基础知识)
  • #单片机(TB6600驱动42步进电机)
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (12)目标检测_SSD基于pytorch搭建代码
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (含笔试题)深度解析数据在内存中的存储
  • (力扣)循环队列的实现与详解(C语言)
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • *1 计算机基础和操作系统基础及几大协议
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .gitignore文件_Git:.gitignore
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .Net Core 微服务之Consul(二)-集群搭建
  • .NET 事件模型教程(二)
  • .net 受管制代码
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)