Leif160519的blog Leif160519的blog

——————

目录
解决Kubernetes-Dashboard在chrome浏览器上无法打开(证书不可信任)的问题
/    

解决Kubernetes-Dashboard在chrome浏览器上无法打开(证书不可信任)的问题

当我们搭建完一个k8s集群并且使用官方dashboard-yaml文件创建好k8s-dashboard之后发现,只有火狐浏览器可以打开dashbaord界面,chrome和IE浏览器都无法访问

image.png

image.png

原因是部署UI的镜像中默认自带的证书是一个不可信任的证书

image.png

由此可以发现,该证书的很多信息都没有,并且证书的时间也都不正常,这就导致了大部分浏览器不认这个证书,但是我们自己生成的证书大部分浏览器都是可以访问的,那是因为我们自己签发的证书是符合校验字段的

下面介绍两种k8s集群搭建方式对应的解决方案(主要是将自带的证书替换成我们自己签发的证书)

对于自签证书,我们可以使用openssl或者cfssl工具生成证书,或者直接使用k8s证书(/etc/kubernetes/pki)

kubeadm和二进制部署的k8s集群一般都有两套证书(2个ca签发),一套是apiserver,一套是etcd,如果想使用现成的证书,这两套都可以。

k8s-dashboard证书是存储在k8s中的:

image.png

可以发现,certs后面的数据是空的,这就说明在这个secret中并没有存储任何东西,只不过有这个资源创建了,证书在镜像中自带,那么我们需要做的就是需要在这个secret去签发证书,随后在重新创建dashboard的pod即可

二进制部署

注意你部署Dashboard的命名空间(之前部署默认是kube-system,新版是kubernetes-dashboard)

1、 删除默认的secret,用自签证书创建新的secret

kubectl delete secret kubernetes-dashboard-certs -n kubernetes-dashboard

kubectl create secret generic kubernetes-dashboard-certs \
--from-file=/opt/kubernetes/ssl/server-key.pem --from-file=/opt/kubernetes/ssl/server.pem -n kubernetes-dashboard

2、修改 dashboard.yaml 文件,在args下面增加证书两行

args:
       # PLATFORM-SPECIFIC ARGS HERE
       - --auto-generate-certificates
       - --tls-key-file=server-key.pem
       - --tls-cert-file=server.pem

kubectl apply -f kubernetes-dashboard.yaml

kubeadm部署

注意你部署Dashboard的命名空间(之前部署默认是kube-system,新版是kubernetes-dashboard)

1、删除默认的secret,用自签证书创建新的secret

kubectl delete secret kubernetes-dashboard-certs -n kubernetes-dashboard

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

2、修改 dashboard.yaml 文件,在args下面增加证书两行

args:
         # PLATFORM-SPECIFIC ARGS HERE
         - --auto-generate-certificates
         - --tls-key-file=apiserver.key
         - --tls-cert-file=apiserver.crt

kubectl apply -f kubernetes-dashboard.yaml

查看secret:
image.pngimage.png

效果:
image.png

证书信息:
image.png


“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” – Tom Cargill

标  题解决Kubernetes-Dashboard在chrome浏览器上无法打开(证书不可信任)的问题
作  者Leif160519
出  处https://github.icu/articles/2020/06/08/1591598117843.html
关于博主:坐标南京,运维工程师,如有问题探讨可以直接下方留言。
声援博主:如果您觉得文章对您有帮助,可以评论、订阅、收藏。您的鼓励是博主的最大动力!