一、查看要安裝的Dashboard版本
https://github.com/kubernetes/dashboard/releases
二、安裝命令
此處選擇v2.0.4版本安裝
所需的兩個鏡像分別為:
kubernetesui/dashboard:v2.0.4、kubernetesui/metrics-scraper:v1.0.4
可從阿里雲公共鏡像提前拉取上述兩個鏡像,再執行下面命令安裝
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
三、查看是否安裝成功
kubectl get pods --all-namespaces
四、配置登錄權限
#創建用於登錄的用戶
kubectl create serviceaccount dashboard-admin -n kube-system
#關聯權限
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
#導出登錄用的token
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep dashboard-admin|awk '{print $1}')|grep token:|awk '{print $2}'
#運行
kubectl proxy
#在master用瀏覽器訪問
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
PS:重新運行kubectl proxy的方法
查看占用端口
ps aux | grep kubectl
殺死進程
kill -9 1549
重新啟動
kubectl proxy
五、通過NodePort暴露dashboard
上述dashboard默認servcie Type 為ClusterIP,只能通過proxy集群內部訪問,下面修改yaml文件改為NodePort,從而從外部訪問。
下載官方的recommended.yaml文件到本地:
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
重命名為kubernetes-dashboard.yaml:
mv recommended.yaml kubernetes-dashboard.yaml
修改dashboard的ServiceType為NodePort,加入nodePort:
重新生成dashboard:
kubectl apply -f kubernetes-dashboard.yaml
查看pod,svc狀態:
kubectl get pod,svc -n kubernetes-dashboard
通過chrome瀏覽器訪問https://192.168.124.201:31111:
如果因為證書問題,可以修改chrome的以下設置:
解決k8s自簽名SSL驗證不通過的問題,以下是chrome瀏覽器的解決方案:
chrome://flags/#allow-insecure-localhost
And enable "Allow invalid certificates for resources loaded from localhost.
獲取token:
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep dashboard-admin|awk '{print $1}')|grep token:|awk '{print $2}'
輸入生成token即可訪問dashboard:
其他證書問題可以參考: