一、查看要安装的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:
其他证书问题可以参考: