原因:

由于之前部署集群只配置了内网的访问入口,现想通过公网访问k8s集群,使用原有的证书不允许,报错如下:

urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='10.10.10.10', port=8443): Max retries exceeded with url: /api/v1/pods?watch=False (Caused by SSLError(SSLCertVerificationError("hostname '10.10.10.10' doesn't match either of 'kubernetes', 'kubernetes.default', 'kubernetes.default.svc', 'kubernetes.default.svc.cluster', 'kubernetes.default.svc.cluster.local', '127.0.0.1', '172.17.6.1', '172.17.6.1', '10.68.0.1'")))

需要重新生成k8s 证书

1.修改kubernetes-csr.json 文件

2.重新生成证书:

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

3.备份原有证书

4.拷贝新证书到/etc/kubernetes/ssl 目录

5.重启kube-apiserver

systemctl restart kube-apiserver.service

6.查看状态

systemctl status kube-apiserver.service

7.验证

 

 

Logo

开源、云原生的融合云平台

更多推荐