k8s多叢集管理工具kubecm

misakivv發表於2024-07-25

目錄
  • 一、概述
  • 二、安裝
    • 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-node1 192.168.112.10192.168.112.20 config
k8s-master2k8s-node2 192.168.112.30192.168.112.40 cluster2-config
k8s-master3k8s-node3 192.168.112.50192.168.112.60 cluster3-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>

相關文章