九析帶你輕鬆完爆 kubernates dashboard v2.0.0

目錄

1 介紹 dashboard 

2 部署 dashboard 

3 修改 dashboard service type

4 獲取 dashboard token

5 登錄 dashboard

6 提權 service account

7 trouble shooting


1 介紹 dashboard

        dashboard 是 k8s web 控制檯。你可以使用它在 k8s 中部署容器應用,定位容器異常、以及管理集羣資源等。spacer.gifclipboard1.png        本文基於 k8s v1.16.3 版本,dashboard 採用 v2.0.0-beta6 版本。如果你的 k8s 版本低於 v1.16,建議直接採用 helm 安裝低版本的 dashboard,可以參照本人的另外一篇文章《九析帶你輕鬆完爆 helm3 kuberntes-dashboard》。


2 部署 dashboard

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta6/aio/deploy/recommended.yaml

        如果你很走運,訪問不到上面的網址,可以直接到我的網盤去下載,不用謝:spacer.gifclipboard2.png


3 修改 dashboard 服務類型

        部署完 dashboard,鏡像都下載完畢之後,還需要修改一下 kubernetes-dashboard 的 service 類型纔可以直接訪問。默認情況下,kubernetes-dashboard 的服務類型爲 ClusterIP,執行如下語句修改爲 NodePort 類型:

kubectl patch svc -n kubernetes-dashboard kubernetes-dashboard -p '{"spec": {"type" : "NodePort"}}'


4 獲取 dashboard token

        dashboard 控制檯使用了鑑權機制,因此如果要訪問,必須獲取其登錄 token。執行如下語句查找 token 所在的 secret 資源:

kubectl get secrets -n kubernetes-dashboard

clipboard3.png        本人 token 所在的 secert 資源名爲 kubernetes-dashboard-token-8ctfw。每人生成的隨機資源都不會相同,以個人情況爲準。

        執行如下語句從 secret 資源查找 token:

kubectl get secrets -n kubernetes-dashboard kubernetes-dashboard-token-8ctfw -o yamlspacer.gif

clipboard4.png

        爲了安全,secret 的 token 經過了 base64 的編碼處理,不能直接使用。如果要使用,需要進行解碼,解碼語句如下。注意 token 一定要拷貝完整,看仔細

echo 'your token' | base64 -dspacer.gif

clipboard5.png


5 登錄 dashboard

        獲取 dashboard service 暴露的端口號,本人是 30501,注意不是 443。

kubectl get svc -n kubernetes-dashboard

clipboard6.pngspacer.gif        使用 firefox 或者 safari 瀏覽器( chrome 會有問題),登錄即可輕鬆完爆。spacer.gifclipboard7.png


6 提權 service account

        默認 service account 爲 kubernetes-dashboard,權限範圍是 default 命名空間。如果想具有管理員權限,需要重新進行角色綁定。先將默認 service account 導出:

kubectl get clusterrolebindings.rbac.authorization.k8s.io kubernetes-dashboard -o yaml > clusterrolebinding.yaml

        修改 clusterrolebinding.yaml 文件,將 role 名改爲 cluster-admin(此角色就是集羣管理員角色):

spacer.gifclipboard8.png

        刪除舊的 clusterrolebindings:

kubectl delete clusterrolebindings.rbac.authorization.k8s.io kubernetes-dashboard

        生成新的 clusterrolebindings:

kubectl apply -f clusterrolebinding.yaml

        再次登錄,發現已經是管理員操作權限了:spacer.gifclipboard9.png


7 touble shooting

        dashboard 默認情況下使用的 service type 是 ClusterIP,上面的教程中將其改造成了 NodePort,如果你仍然想採用 ClusterIP 方式的話,可以使用如下命令來開啓代理,代理默認會開啓當前主機端口 8001。

kubectl proxy

        你可以通過訪問當前主機上的 firefox 來訪問 dashboard 控制檯。

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

        如果你遠程訪問代理,則會報 Forbidden(403)。可以通過添加如下啓動參數來解決:

kubectl proxy --address=0.0.0.0 --disable-filter=true

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章