Dashboard是Kubernetes的基本Web管理工具。Dashboard 1.x系列只能用於Kubernetes 1.16之前的版本。從Kubernetes 1.16開始,須要使用Dashboard 2,其部署方式有較大的變化。這裏介紹在Kubernetes 1.17.0來部署管理界面Dashboard 2的方法和步驟。git
若是尚未安裝CNI驅動,可使用下面的命令來裝個flannel虛擬網絡驅動。github
先獲取鏡像:docker
docker pull quay.io/coreos/flannel:v0.11.0-amd64
而後,安裝:api
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
拉取Dashboard的images:網絡
docker pull kubernetesui/metrics-scraper:v1.0.1 docker pull kubernetesui/dashboard:v2.0.0-beta8
包括建立服務帳號、設置服務帳號的role、獲取token等步驟。app
建立一個Service Account,命名爲 admin-user,放在
namespace kubernetes-dashboard
中。工具
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard
將上面內容保存爲文件dashboard-adminuser.yaml。網站
大部分狀況下,使用 kops
或 kubeadm
部署集羣后, ClusterRole
admin-Role
已經在集羣中存在,咱們可使用它,僅須要建立 ClusterRoleBinding
到咱們的 ServiceAccount。
ui
注意: apiVersion
of ClusterRoleBinding
資源在不一樣的 Kubernetes 版本中多是不同的。Kubernetes v1.8
以前apiVersion
是 rbac.authorization.k8s.io/v1beta1。
spa
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。
首先,應用上面的兩個文件。以下:
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中使用。
須要將Dashboard的服務暴露出來讓客戶端訪問,包括運行代理和使用NodePort方法,還可使用Ingress等方法,這裏不介紹,能夠參考:
運行代理服務:
$ kubectl proxy
而後打開下面的鏈接:
在頁面中選擇token模式登錄,而後填入上面步驟複製的token便可。
使用kubectl get svc/dashboardxxxxx -n kubernetes-dashboard來獲取dashboard的服務ID。
使用kubectl edit svc/dashboardxxxxx -n kubernetes-dashboard來編輯服務的參數,將網絡類型改成NodePort,並增長端口30800。
而後打開 http://localhost:30800 便可訪問。
在頁面中選擇token模式登錄,而後填入上面步驟複製的token便可。