https://blog.csdn.net/qq_22917163/article/details/84527420
1. 通過yaml文件安裝dashboard
我們可以從https://github.com/kubernetes/dashboard/releases上邊找到和自己安裝的k8s相對於的dashboard的版本,這里我安裝的是1.8.3的版本。
1.1 下載對應版本
https://github.com/kubernetes/dashboard 下載dashboard鏡像
[root@k8s-master ~]# tar xf dashboard-1.8.3.tar
[root@k8s-master ~]# cd dashboard-1.8.2/src/deploy/recommended/
1.2 修改yaml文件中鏡像地址
因為大家都知道的原因,yaml文件中的鏡像地址無法被訪問,因此無法拉下來我們需要的鏡像,所以需要我們將鏡像地址修改成可以訪問到的(自行百度吧)。
1.3 修改yaml文件中service的type類型
官方的kubernetes-dashboard.yaml文件中service的type類型為clusterIp(service默認類型),這種方式要訪問dashboard需要通過代理,所以我們改為NodePort方式,這樣部署完后,就可以直接通過nodeIP:port的方式訪問
1.4 部署
[root@k8s-master ~]# kubectl create -f kubernetes-dashboard.yaml
部署完成后,可以通過kubectl get svc,pod -n kube-system來查看是否部署成功
當部署成功后,我們就可以訪問dashboar的圖形界面了(使用任何一個節點的宿主機ip:port訪問)
2 為dashboar配置訪問權限
k8s 從1.6版本開始使用RBAC(有關基於角色的訪問控制,請參考k8s文檔), 所以我們需要給dashboard配置一個serviceAccount, 並給該serviceAccount附上權限(也就是和role進行綁定,因為我們是集群,所以執行的是clusterRoleBinding)
2.1 創建serviceAccount
我們創建一個叫dashboard-admin的serviceAccount用戶
apiVersion: v1 kind: ServiceAccount metadata: name: dashboard-admin namespace: kube-system
2.2 授權
進行權限綁定ClusterRoleBinding ,也就是授予權限, 我們把k8s內置的cluster-admin這個role(角色)賦給了dashboard-admin這個serviceAccount用戶
apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: dashboard-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: dashboard-admin namespace: kube-system
2.3 獲取用戶token
[root@k8s-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep dasboard-admin | awk '{print $1}')
2.4登陸dashboard
到此,k8s的dashboard就安裝完了,我們就可以愉快的通過圖形界面進行操作了。