K9S使用介紹

Posted by Kubeguts on 2021-05-16

K9S是一個可以監控k8s的開源工具

安裝 (Linux版本)

記得先安裝brew,與go v1.14以上的版本

1
brew install derailed/k9s/k9s

將k9s的repositoy clone下來

1
git clone https://github.com/derailed/k9s.git

到k9s目錄內,執行以下指令

1
make build && ./execs/k9s

可以把 k9s binary檔案放置到 /usr/bin

若輸入k9s,看到以下畫面,表示成功 (下圖為透過minikube start所架設的pods)

pic01

介面瀏覽

  • 左上角可以看到k8s的cluster名稱為minikube
  • 中上方有 <0>, <1>,表示可以用數字鍵來快速瀏覽現存的namespace
  • 中間框框的名稱是目前的服務類型之列表

pic02

pic03

搜尋服務

例如要搜尋pod,先按下:,在輸入pod,且k9s最大的優點就是會自動補齊!

gif01

接著對某一個pod按下enter,可以看到container的資訊

  • 左下角可以看到目前的位置

pic04

若要回到pod層級,就按下esc

服務導覽 xray

透過 xray [服務] [namespace],可以列出服務所提供的各項功能,並透過快捷鍵快速到自己要的位置

pic13

pic14

查看細節

在正上方,可以透過快捷鍵查看服務的細節,例如以container為例

  • a: 進入到容器內
  • ?: 顯示幫助說明
  • logs: 查看容器的logs
  • shell: 以shell方式進入到容器內

pic05

像是其他的服務 pod service都會有特定的快捷鍵供參考

pic06

pic07

監控服務

例如在Deployment後,想要查看服務建置系統所耗用的資源,可以用 :pluse來了解

pic10

過濾服務

按下 /,會冒出貴賓狗的樣子,可以輸入要找尋的pod名稱

gif02

以label標籤過濾

使用 -l 前綴,可以用label方式過濾服務

例如,過濾出 version=2的label

pic08

可以先用y,查看服務的yaml細節,得知label是什麼囉

以namespace方式過濾

通常會以namespace找出特定群組的服務們,透過:namespace:ns,得到namespace服務們

gif03

砍掉服務

ctrl + d砍掉,會先跳出警示視窗,避免誤刪

且可以看到pod若有設置replicaset,會自動將砍掉的pod恢復回來

pic09

gif04

服務指標

透過 :popeye,可以得知服務建置時的健康狀況,k9s會根據建置時是否有出現狀況來評定分數

pic11

對有問題的服務按下enter,就可以看到sanitizer,會針對服務產出一系列警告的報告

pic12

參考