Kubernetes管理界面Dashboard 2

Dashboard是Kubernetes的基本Web管理工具。Dashboard 1.x系列只能用於Kubernetes 1.16以前的版本。從Kubernetes 1.16開始,需要使用Dashboard 2,其部署方式有較大的變化(主要是獨立部署,命名空間和登錄授權方式變了)。這裏介紹在Kubernetes 1.21.0來部署管理界面Dashboard 2的方法和步驟。

1、安裝服務

安裝:

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

拉取Dashboard的images:

docker pull kubernetesui/metrics-scraper:v1.0.6
docker pull kubernetesui/dashboard:v2.2.0
  • 注意,有幾個變化:
    • 現在的鏡像是兩個,以前只有一個。
    • kubernetes-dashboard的docker鏡像庫位置名稱變了。
    • 命名空間從kube-system變到kubernetes-dashboard。
    • 登錄授權方式變了,下面將介紹具體方法。

2、訪問權限設置

包括創建服務賬號、設置服務賬號的role、獲取token等步驟。

2.1 創建服務訪問賬號

創建一個Service Account,命名爲 admin-user,放在namespace kubernetes-dashboard 中。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

將上面內容保存爲文件dashboard-adminuser.yaml。

2.2 創建ClusterRoleBinding

大部分情況下,使用 kops 或 kubeadm 部署集羣后, ClusterRole admin-Role 已經在集羣中存在,我們可以使用它,僅需要創建 ClusterRoleBinding 到我們的 ServiceAccount。

注意: apiVersion of ClusterRoleBinding 資源在不同的 Kubernetes 版本中可能是不一樣的。Kubernetes v1.8之前apiVersion 是 rbac.authorization.k8s.io/v1beta1。

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard

將上面的內容保存到文件dashboard-adminrole.yaml。

2.3 Bearer Token

首先,應用上面的兩個文件。如下:

kubectl apply -f dashboard-adminuser.yaml
kubectl apply -f dashboard-adminrole.yaml

找到 token 來登陸Dashboard的Web界面。執行下面的命令:

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

將token內容拷貝下來,在下面的 WebUI中使用。

3、訪問方式

需要將Dashboard的服務暴露出來讓客戶端訪問,包括運行代理和使用NodePort方法,還可以使用Ingress等方法,這裏不介紹,可以參考:

3.1 代理訪問模式

運行代理服務:

$ kubectl proxy

然後打開下面的連接:

在頁面中選擇token模式登陸,然後填入上面步驟複製的token即可。

 

3.2 NodePort模式

使用kubectl get svc/dashboardxxxxx -n kubernetes-dashboard來獲取dashboard的服務ID。

使用kubectl edit svc/dashboardxxxxx -n kubernetes-dashboard來編輯服務的參數,將網絡類型改爲NodePort,並增加端口30800。

然後打開 http://localhost:30800 即可訪問。

在頁面中選擇token模式登陸,然後填入上面步驟複製的token即可。

更多參考:

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