在前幾天的學習筆記中,我們都是透過 kubectl 指令來操作 Kubernetes 。筆者今天想分享另外一個由 Kubernetes 提供的操作介面 - Dashboard。透過 Dashboard 提供的圖形介面,開發者能更快速、方便地查看 Kubernetes Cluster 上資源分佈與使用狀況。
今天的學習筆記內容下:
如果是在本機端使用 minikube
的讀者,可以在終端機輸入 minikube dashboard
,如此在本機端的瀏覽器就會自動開啟 Dashboard 頁面,
$ minikube dashboard
如果只是想取得 Dashboard 的 url ,可以在指令後面加上 --url
$ minikube dashboard --url
http://192.168.99.100:30000
一般 Kubernetes 預設並不會有 Dashboard 套件,因此我們需要透過以下的指令,透過 kubectl apply
指令創建這個 Web UI component,
$ kubectl apply -f https://raw.githubusercontent.com/\
> kubernetes/dashboard/master/src/deploy/recommended/\
> kubernetes-dashboard.yaml
安裝完 Dashboard 之後,我們可以透過 kubectl proxy
指令連接到 Dashboard,預設會將 Dashboard 與本機端的 port number 8001
互相 mapping,而開發者可以在本機端上直接透過該 url 存取 Dashboard。
$ kubectl proxy
Starting to serve on 127.0.0.1:8001
值得留意的是
$ kubectl proxy --address='0.0.0.0' --port=8002 --accept-hosts='^*$'
目前官方已不推薦使用 http://localhost:8001/ui 存取 Dashboard,而是用 上圖中顯示的連結
更多關於 Dashboard 透過 kubectl proxy 存取的使用,可以參考:
Kubernetes Dashboard README 與 FAQ
由於透過 kubectl proxy
連到 Dashboard 沒有認證機制,可能會有安全上的疑慮。在日後的學習筆記中,會與大家分享如何透過帳密,從 Kubernetes master apiserver 存取 Kubernetes Dashboard。
Kubernetes Dashboard 能替我們做到以下幾件事情:
透過 Web UI 能快速瀏覽目前運行在 Kubernetes 上所有的 applications
在 Dashboard 上,可以直接 新增、修改、刪除 物件 (如同 kuberctl create、 edit 、 delete 指令)
可以取得每個物件的歷史狀態 (如同 kubectl describe pod )
在今天學習筆記中,我們將在本機端透過 minikube
指令,訪問 Kubernetes Dashboard,指令如下:
$ minikube dashboard
Dashboard 首頁會顯示目前所有物件的工作的狀態,這裡我們可以看到目前運行的是我們昨天架設的 wordpress application 。
點選 wordpress-app
物件後,我們可以看到該物件的詳細資料,包含創建的時間、使用的 Lables 等等。
而這樣的查看功能,也適用於每一個先前我們介紹過的 Kubernetes 元件。此外,我們也可以透過這個 Web UI 創建一個新的物件。找到右上角的 +CREATE 選項,進入編輯頁面之後,可以上傳預先寫好的 YAML 設定檔,或是直接在上面編輯。
另外,我們也可以在 Dashboard 刪除物件,以 wordpress-app
Pod物件為例,進到 Pod 的詳細頁面之後,右上角點選 DELETE 選項,
會跳出一個確認的對話視窗,
按下 YES 之後,該 Pod 物件就會被刪除。若這時我們再回到 Overview 頁面,會發現 Kubernetes 會幫我們建立一個新的物件。
這是因為 wordpress-deployment
偵測到 Pod 數量不符合預期,因此新創建一個 Pod 維持外部服務能存取 Wordpress Application。
可以看到右上角多了幾個選項,EXEC,LOGS,EDIT,DELETE。每個選項都與我們先前介紹的 kubectl 指令相仿,有興趣的讀者不妨在 Dashoard 上操作看看這些功能。
雖然今天對 Kubernetes Dashboard 的介紹不太多,但相信已經熟悉 kubectl 指令 的讀者很快就能上手。在之後的學習筆記中,我們將繼續透過 kubectl 指令 分享更多 Kubernetes 的元件。
依舊歡迎大家給予建議與討論,如果能按個讚給些鼓勵也是很開心唷 : )
Hi,
Dashboard UI link 已經更新成:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
謝謝作者的教學文,受用無窮
hihi @immomo808,
感謝支持 XD
是的,現在已經不再推薦用 /ui
存取 Dashboard,我覺得是我這部分寫的不太清楚,週末再來修改這部分!感謝!!
- 目前官方已不推薦使用 http://localhost:8001/ui 存取 Dashboard,而是用 上圖中顯示的連結