安裝 k9s 並用終端機管理 Kubernetes 叢集
平常使用 Kubernetes 時,最常接觸的工具通常是 kubectl。它很完整,也很適合寫成腳本,但如果只是想快速查看 Pod 狀態、切換 namespace、看 logs、describe 資源或進入 container,每次都輸入完整指令會稍微打斷操作節奏。
k9s 是一套以終端機為基礎的 Kubernetes TUI 工具,可以用互動式畫面查看與管理 Kubernetes 叢集。它會持續監看叢集中的資源變化,並提供快捷鍵來執行常見操作,例如查看 Pod、切換 namespace、檢視 logs、port-forward、刪除資源與進入 shell。這篇文章會示範如何在 Ubuntu 環境安裝 k9s,並搭配 Minikube 叢集簡單確認操作畫面。
官方網站:K9s
官方專案連結:derailed/k9s
k9s 是什麼?
k9s 可以把許多常見的 kubectl 操作整合到同一個終端機畫面中。進入 k9s 後,可以透過鍵盤在不同 Kubernetes 資源之間移動,並直接對目前選取的資源執行操作。
常見用途包含:
| 功能 | 說明 |
|---|---|
| 即時查看資源 | 查看 Pod、Deployment、Service、ConfigMap、Secret 等 Kubernetes 資源 |
| 檢視 logs | 直接從 Pod 或 Container 進入 logs 畫面 |
| 切換 namespace | 在 k9s 內快速切換不同 namespace 的資源視圖 |
| 查看資源細節 | 對資源執行 describe 或查看 YAML |
| 管理工作負載 | 支援 restart、delete、edit、port-forward 等常用操作 |
| 自訂操作 | 支援 aliases、hotkeys、plugins、skins 與 custom views |
如果只是偶爾查詢 Kubernetes 狀態,kubectl 已經足夠;但如果需要長時間觀察叢集、追 logs 或在多個資源之間切換,k9s 會讓操作更集中,也比較不需要一直記住完整指令。
安裝前準備
在安裝 k9s 前,建議先確認目前環境已經可以透過 kubectl 連線到 Kubernetes 叢集。可以先執行:
1 | kubectl get nodes |
如果可以正常列出節點,就代表目前的 kubeconfig 與 Kubernetes context 已經可用。k9s 會沿用既有的 kubeconfig,所以不需要另外設定叢集連線資訊。
這篇文章使用的環境如下:
| 項目 | 版本或環境 |
|---|---|
| 作業系統 | Ubuntu / Debian 類 Linux 環境 |
| Kubernetes 環境 | Minikube |
| k9s 安裝方式 | 官方 GitHub Releases 提供的 .deb 套件 |
下載 k9s deb 套件
在 Ubuntu 或 Debian 環境中,可以直接下載官方 Releases 提供的 .deb 套件。以下指令會下載最新版本的 k9s_linux_amd64.deb:
1 | wget https://github.com/derailed/k9s/releases/latest/download/k9s_linux_amd64.deb |
下載時 GitHub 會先導向最新版本的 release asset,因此畫面中可以看到 302 Found 與重新導向到實際下載網址的過程。只要最後回應為 200 OK,就代表已經開始下載檔案。
下載完成後,目錄中會出現 k9s_linux_amd64.deb。接著就可以用 apt 安裝這個本機套件。
安裝 k9s
執行下列指令安裝剛剛下載的 .deb 檔案:
1 | sudo apt install ./k9s_linux_amd64.deb |
apt 會讀取本機的 .deb 套件,並將 k9s 安裝到系統中。安裝過程中可以看到 Selecting previously unselected package k9s、Unpacking k9s 與 Setting up k9s 等訊息。
安裝完成後,如果畫面出現 Download is performed unsandboxed as root 之類的 notice,通常是因為 _apt 使用者無法直接讀取使用者家目錄中的本機 .deb 檔案。只要套件已經順利安裝完成,這個訊息不影響 k9s 使用。
安裝完成後,可以視需要刪除下載的安裝檔:
1 | rm k9s_linux_amd64.deb |
確認 k9s 版本
安裝完成後,可以先確認 k9s 指令是否可用:
1 | k9s version |
也可以使用下列指令查看 k9s 的設定檔、log、screen dump 等路徑:
1 | k9s info |
如果這兩個指令都能正常執行,就代表 k9s 已經成功安裝到系統中。
啟動 k9s
直接執行 k9s 就會使用目前 kubeconfig 的 active context 連線到 Kubernetes 叢集:
1 | k9s |
進入畫面後,左上角會顯示目前 context、cluster、user、K9s 版本、Kubernetes 版本,以及 CPU、MEM 等資訊。主要區域會顯示目前資源清單,畫面中可以看到 pods(all),代表正在查看所有 namespace 的 Pod。
如果想直接指定 namespace 啟動,可以使用 -n 參數:
1 | k9s -n dockertest |
也可以指定 Kubernetes context:
1 | k9s --context minikube |
如果只是想檢視資源,不希望誤觸修改或刪除操作,也可以用唯讀模式啟動:
1 | k9s --readonly |
切換 namespace 查看 Pod
在 k9s 中,可以使用數字快捷鍵切換常用 namespace,也可以透過指令模式進入不同資源或 namespace。畫面上方會顯示 namespace 快捷選項,例如 all、dockertest、default。
切換到 dockertest 後,Pod 清單只會顯示該 namespace 底下的資源。這比每次輸入 kubectl get pods -n dockertest 更適合用來持續觀察特定 namespace 的狀態。
在 Pod 清單中,常用欄位包含:
| 欄位 | 說明 |
|---|---|
NAME |
Pod 名稱 |
READY |
Container 就緒數量 |
STATUS |
Pod 狀態 |
RESTARTS |
重新啟動次數 |
CPU、MEM |
資源使用量 |
IP |
Pod IP |
如果叢集中有安裝 Metrics Server,k9s 也可以顯示 Pod、Container 或 Node 的 CPU、Memory 使用量。
查看 Container 資訊
選取 Pod 後,可以按下 Enter 進入該 Pod 的下一層資訊。在範例中,進入 Pod 後可以看到 container 清單,包含 container 名稱、image、ready 狀態與 restart 次數。
這個畫面很適合用來確認 Pod 實際使用的 image,例如 image tag 是否正確、container 是否已經 ready,以及 probe 狀態是否符合預期。
查看 Pod Logs
在 Pod 或 Container 畫面中,可以按下 l 查看 logs。這相當於使用 kubectl logs,但可以直接在互動式畫面中切換與追蹤。
Logs 畫面上方會顯示常用操作,例如:
| 快捷鍵 | 功能 |
|---|---|
0 |
tail logs |
1 |
head logs |
2 |
顯示最近 1 分鐘 |
3 |
顯示最近 5 分鐘 |
4 |
顯示最近 15 分鐘 |
5 |
顯示最近 30 分鐘 |
6 |
顯示最近 1 小時 |
c |
複製內容 |
s |
切換自動捲動 |
shift-c |
清空畫面 |
shift-l |
切換欄位顯示 |
如果正在排查服務是否收到請求、應用程式是否拋出錯誤,這個 logs 畫面會比反覆執行 kubectl logs -f 更方便。
常用快捷鍵整理
以下整理幾個剛開始使用 k9s 時很常用的快捷鍵:
| 快捷鍵或指令 | 用途 |
|---|---|
? |
顯示說明與可用快捷鍵 |
: |
進入指令模式 |
:pod |
查看 Pod 資源 |
:deploy |
查看 Deployment 資源 |
:svc |
查看 Service 資源 |
:ns |
查看與切換 namespace |
/ |
在目前清單中搜尋或過濾 |
Enter |
進入選取資源的下一層資訊或詳細畫面 |
Esc |
回到上一層畫面 |
d |
Describe 選取的資源 |
y |
查看選取資源的 YAML |
l |
查看 logs |
s |
進入 Pod shell,依資源畫面而定 |
ctrl-d |
刪除資源 |
:q |
離開 k9s |
k9s 的快捷鍵會依目前所在資源畫面而有所不同,因此實際操作時可以隨時按 ? 查看當前畫面支援的指令。
其他安裝方式
除了 .deb 安裝之外,官方也提供多種平台與套件管理工具的安裝方式。常見方式如下:
| 平台或工具 | 安裝指令 |
|---|---|
| Homebrew | brew install derailed/k9s/k9s |
| Ubuntu / Debian | wget https://github.com/derailed/k9s/releases/latest/download/k9s_linux_amd64.deb && sudo apt install ./k9s_linux_amd64.deb && rm k9s_linux_amd64.deb |
| Fedora 42+ | dnf install k9s |
| Snap | snap install k9s --devmode |
| Arch Linux | pacman -S k9s |
| OpenSUSE | zypper install k9s |
| FreeBSD | pkg install k9s |
| Windows winget | winget install k9s |
| Windows Scoop | scoop install k9s |
| Windows Chocolatey | choco install k9s |
| Go install | go install github.com/derailed/k9s@latest |
如果使用的系統不在上表中,也可以到 GitHub Releases 頁面下載對應平台的 binary,再將執行檔放到 PATH 中。
小結
k9s 是一套很適合日常 Kubernetes 操作的終端機工具。安裝完成後,它會直接沿用目前 kubeconfig,讓你用互動式畫面查看 Pod、Container、Logs 與其他 Kubernetes 資源。對於需要經常觀察 namespace、追 logs 或檢查資源狀態的情境,k9s 可以減少許多重複輸入 kubectl 指令的時間。
這篇文章示範了在 Ubuntu 環境透過官方 .deb 套件安裝 k9s,並使用 Minikube 叢集確認啟動、切換 namespace、查看 container 與 logs。後續如果想進一步客製化操作體驗,可以再研究官方文件中的 aliases、hotkeys、plugins、skins 與 custom views。