k8s-搭建Dashboard(2)

一、查看要安装的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:

image-20201014232524879

重新生成dashboard:

kubectl apply -f  kubernetes-dashboard.yaml

查看pod,svc状态:

kubectl get pod,svc -n kubernetes-dashboard

image-20201014232927793

通过chrome浏览器访问https://192.168.124.201:31111:

image-20201014233248451

如果因为证书问题,可以修改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:

image-20201014233540165

其他证书问题可以参考:

https://github.com/ubuntu/microk8s/issues/1046

https://github.com/kubernetes/dashboard/issues/2995

原文地址:https://www.cnblogs.com/roluodev/p/13823130.html