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

本贴最后更新于 1627 天前,其中的信息可能已经时移俗易

当我们搭建完一个 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

  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    110 引用 • 54 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...