文章首發於個人公衆號:「阿拉平平」
之前我向大家介紹過一款 K8s 的 IDE:Lens。通過圖形介面,我們可以很方便地管理多個叢集。不過有的小夥伴可能更習慣使用 kubectl
去管理叢集,所以今天和大家分享一個高效管理 K8s 叢集的命令列工具:K9s。
本文演示環境爲 CentOS 7.4,K9s 版本爲 0.21.7,K8s 叢集託管在阿裡雲上。
K9s 提供了一個與 K8s 叢集互動的終端 UI,用於簡化導航、觀察以及管理應用程式。K9s 會持續監控 K8s 的變化,並提供後續命令與所觀察到的資源進行互動。
K9s 可用於 Linux、macOS 以及 Windows 平臺。我使用的是 Linux 系統,安裝方法如下:
[root@localhost ~]# wget https://github.com/derailed/k9s/releases/download/v0.21.7/k9s_Linux_x86_64.tar.gz
[root@localhost ~]# tar -zxf k9s_Linux_x86_64.tar.gz -C /usr/local/bin
獲取 K9s 資訊:
[root@localhost ~]# k9s info
____ __.________
| |/ _/ __ \______
| < \____ / ___/
| | \ / /\___ \
|____|__ \ /____//____ >
\/ \/
Configuration: /root/.k9s/config.yml
Logs: /tmp/k9s-root.log
Screen Dumps: /tmp/k9s-screens-root
與 kubectl 相同,K9s 啓動時會讀取預設的 kubeconfig
。
[root@localhost ~]# k9s
如果有多個 config 檔案,可以通過 --kubeconfig
指定。
[root@localhost ~]# k9s --kubeconfig=/srv/.kube/config
啓動後介面如下:
我之前在叢集上安裝了攜程開源的設定中心 apollo
,現在試試用 K9s 管理相關資源。
目前 K9s 會羅列出所有名稱空間下的 Pods,而 apollo 的資源都安裝在 kube-public
下,所以啓動時指定下名稱空間:
[root@localhost ~]# k9s -n kube-public
指定名稱空間後 Pods 顯示如下:
如果啓動時指定了名稱空間,之後就可以用數位鍵切換。
現在試下用 K9s 編輯資源,增加 admin-server
的副本數。
這裏的 admin-server 是一個 Deployment,所以需要輸入 :deploy
進入到 deployment 視圖裏。
選擇 admin-server,輸入 e
進行編輯。可以看到,副本數已經增加到 2 了:
除了編輯資源的方式,也可以輸入 s
調整副本數:
由於剛剛新增了一個副本,我們檢視下服務啓動的日誌。
選擇 admin-server,輸入 l
檢視日誌:
可以看到,服務啓動正常,沒有報錯。
K9s 自帶了許多快捷鍵,可以通過輸入 ?
獲取幫助。
與 kubectl 相比,K9s 的功能無疑更爲強大,算是一款管理 Kubernetes 叢集的利器了。除了文中介紹的部分,K9s 自定義的功能也非常強大,支援自定義別名、快捷鍵以及皮膚,這裏就不展開了。
[1] GitHub: https://github.com/derailed/k9s
[2] Speed up administration of Kubernetes clusters with k9s: https://opensource.com/article/20/5/kubernetes-administration
[3] K9s如何加速Kubernetes的叢集管理: https://juejin.im/post/6847902224983539720