K9s 使用教學:如何高效管理 Kubernetes 叢集

2020-08-10 10:48:17

文章首發於個人公衆號:「阿拉平平」

之前我向大家介紹過一款 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 自定義的功能也非常強大,支援自定義別名、快捷鍵以及皮膚,這裏就不展開了。

References

[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