k8s dashboard部分浏览器无法访问

前言


当我们在配置完成dashboard,想要从浏览器查看的时候,通常会发现除了火狐浏览器。谷歌等大部分的浏览器,都无法进行访问。这种情况,我们可以通过自定义证书的方法,来使其他浏览器可以对dashboard进行访问。

这里就不介绍dashboard的配置操作了。



证书生成



创建CA


如果/etc/kubernetes/pki/或其他位置有ca证书,就无需另外生成


openssl genrsa -out ca.key 2048
openssl req -new -x509 -key ca.key -out ca.crt -days 3650 -subj "/C=CN/ST=HB/L=WH/O=DM/OU=YPT/CN=CA"
openssl x509 -in ca.crt -noout -text


签发Dashboard证书


需要ca证书,如果没有ca证书请执行第一步


openssl genrsa -out dashboard.key 2048
openssl req -new -key dashboard.key -out dashboard.csr -subj "/O=white/CN=dasnboard"
openssl x509 -req -in dashboard.csr  -CA ca.crt -CAkey ca.key -CAcreateserial -out dashboard.crt -days 3650


重新部署dashboard


为了避免问题,重新走一遍
重新部署一遍dashboard相关的yaml文件,包括用户权限设置的yaml


kubectl delete -f  dashboard.yaml
kubectl delete -f admin-user.yaml
...
kubectl create -f dashboard.yaml
kubectl create -f admin-user.yaml
...


创建dashboard的secret


注意指定对应证书的正确路径


kubectl create secret generic kubernetes-dashboard-certs -n kubernetes-dashboard --from-file=dashboard.crt=./dashboard.crt --from-file=dashboard.key=./dashboard.key


获取Token

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')


备注:
如果使用其他浏览器可以访问,并通过token成功登录,那么就证明成功了。

如果你进入页面后发现页面,包括pods都是空白的。且通知处含有如下报错:
namespaces is forbidden: User "system:serviceaccount…

需检查一下用户权限的配置

你可能感兴趣的:(kubernetes)