相信很多人都會經常部署不同的 Kubernetes
集羣,也會經常刪除不再使用的 Kubernetes
集羣,如果要在本地通過 kubectl
客戶端與集羣進行交互,就需要不同的 kubeconfig
,然後通過環境變量或命令行參數不斷來回切換 kubeconfig,或者手動將多個 kubeconfig 合併爲一個,然後通過 kubectl 插件 kubectx[1] 或 kubie 來切換上下文環境(即 context
)。
那麼有沒有一種方法可以自動將多個 kubeconfig 文件合併成一個呢?手動合併也太麻煩了啊!
有個小哥和我也有同樣的苦惱,索性寫了一個自動化工具 kubectx.manager[2],可以將多個 kubeconfig 合併成一個,也可以從現有的 kubeconfig 文件中刪除不想要的 context
。
安裝方法很簡單,首先需要有 nodejs
環境,然後通過下面的命令安裝:
$ npm install -g git+https://[email protected]/AveryanovS/kubectx.manager
假設現在要合併多個 kubeconfig,只需執行命令,不帶任何參數,然後就會有一系列交互動作:
$ kubemanager
✔ Select action · merge
✔ Path to current kube config? · /Users/xxx/.kube/config
✔ Path to config to merge? · /Users/xxx/.kube/kubeconfig
✔ Name of new context? · test
Context test created!
Config file updated!
第一行選擇
merge
,表示合併。第二行選擇需要合併到哪個 kubeconfig,也就是你最終要用的 kubeconfig。
第三行選擇需要合併的 kubeconfig。
第四行定義合併後新加入的
context
名稱。
刪除多餘的 context 與上面類似,自己摸索一下。
合併多個 kubeconfig 之後還不行,需要一個能快速切換 context
的工具,不然每次都自己去 kubeconfig 中修改當前的 context
也太 low 了吧!
目前有兩款插件都比較好用, kubectx[3] 或 kubie
,我推薦使用 kubie
,功能更強大,使用 rust 語言編寫,你可以通過 cargo 來編譯安裝,也可以從 release 頁面直接下載二進制文件。
公衆號後臺回覆◉kubie◉即可獲取 kubie 二進制文件的下載地址。
腳註
[1]
kubectx: https://github.com/ahmetb/kubectx
[2]kubectx.manager: https://github.com/AveryanovS/kubectx.manager
[3]kubectx: https://github.com/ahmetb/kubectx
你可能還喜歡
點擊下方圖片即可閱讀
雲原生是一種信仰 ????
掃碼關注公衆號
後臺回覆◉k8s◉獲取史上最方便快捷的 Kubernetes 高可用部署工具,只需一條命令,連 ssh 都不需要!
點擊 "閱讀原文" 獲取更好的閱讀體驗!
❤️給個「在看」,是對我最大的支持❤️