文章首發(fā)于個(gè)人公眾號(hào):「阿拉平平」
之前我向大家介紹過一款 K8s 的 IDE:Lens。通過圖形界面,我們可以很方便地管理多個(gè)集群。不過有的小伙伴可能更習(xí)慣使用 kubectl 去管理集群,所以今天和大家分享一個(gè)高效管理 K8s 集群的命令行工具:K9s。
本文演示環(huán)境為 CentOS 7.4,K9s 版本為 0.21.7,K8s 集群托管在阿里云上。
快速開始
簡(jiǎn)介
K9s 提供了一個(gè)與 K8s 集群交互的終端 UI,用于簡(jiǎn)化導(dǎo)航、觀察以及管理應(yīng)用程序。K9s 會(huì)持續(xù)監(jiān)控 K8s 的變化,并提供后續(xù)命令與所觀察到的資源進(jìn)行交互。
安裝
K9s 可用于 Linux、macOS 以及 Windows 平臺(tái)。我使用的是 Linux 系統(tǒng),安裝方法如下:
[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
啟動(dòng)
與 kubectl 相同,K9s 啟動(dòng)時(shí)會(huì)讀取默認(rèn)的 kubeconfig。
[root@localhost ~]# k9s
如果有多個(gè) config 文件,可以通過 --kubeconfig 指定。
[root@localhost ~]# k9s --kubeconfig=/srv/.kube/config
啟動(dòng)后界面如下:

使用示例
我之前在集群上安裝了攜程開源的配置中心 apollo,現(xiàn)在試試用 K9s 管理相關(guān)資源。
指定命名空間
目前 K9s 會(huì)羅列出所有命名空間下的 Pods,而 apollo 的資源都安裝在 kube-public 下,所以啟動(dòng)時(shí)指定下命名空間:
[root@localhost ~]# k9s -n kube-public
指定命名空間后 Pods 顯示如下:

如果啟動(dòng)時(shí)指定了命名空間,之后就可以用數(shù)字鍵切換。
編輯資源
現(xiàn)在試下用 K9s 編輯資源,增加 admin-server 的副本數(shù)。
這里的 admin-server 是一個(gè) Deployment,所以需要輸入 :deploy 進(jìn)入到 deployment 視圖里。

選擇 admin-server,輸入 e 進(jìn)行編輯。可以看到,副本數(shù)已經(jīng)增加到 2 了:

除了編輯資源的方式,也可以輸入 s 調(diào)整副本數(shù):

查看日志
由于剛剛添加了一個(gè)副本,我們查看下服務(wù)啟動(dòng)的日志。
選擇 admin-server,輸入 l 查看日志:

可以看到,服務(wù)啟動(dòng)正常,沒有報(bào)錯(cuò)。
獲取幫助
K9s 自帶了許多快捷鍵,可以通過輸入 ? 獲取幫助。

寫在最后
與 kubectl 相比,K9s 的功能無疑更為強(qiáng)大,算是一款管理 Kubernetes 集群的利器了。除了文中介紹的部分,K9s 自定義的功能也非常強(qiáng)大,支持自定義別名、快捷鍵以及皮膚,這里就不展開了。
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