给dashboard加入CA认证

在部署完k8s集群后,往往会部署dashborad作为基础监控的一个手段.
但有时候,部署好的dashboard在其他浏览器上无法正常访问,本文将提供解决的一个参考.

1、使用APIServer的CA生成证书

cat > dashboard-csr.json <<EOF
{
    "CN": "Dashboard",
    "hosts": [],
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "L": "BeiJing",
            "ST": "BeiJing"
        }
    ]
}
EOF

APIServer的CA证书目录

K8S_CA=1
cfssl gencert -ca=K8S_CA/ca.pem -ca-key=K8S_CA/ca-key.pem -config=K8S_CA/ca-config.json -profile=kubernetes dashboard-csr.json | cfssljson -bare dashboard

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

kubectl delete secret kubernetes-dashboard-certs -n kube-system
kubectl create secret generic kubernetes-dashboard-certs --from-file=./ -n kube-system

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

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

最后重新提交

kubectl apply -f dashboard-controller.yaml

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注