处理方法
针对 CCSE v1.17.3 集群
步骤1:修改kubelet配置(集群中所有节点)
sudo vi /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
在ExecStart=/usr/bin/kubelet ...行追加配置
--rotate-certificates=true --rotate-server-certificates=true
追加后结果类似
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS --node-ip=192.168.0.1 --root-dir=/dcos/data/docker/kubelet --rotate-certificates=true --rotate-server-certificates=true
步骤2:重启kubelet
sudo systemctl daemon-reload
sudo systemctl restart kubelet
步骤3:批准证书
登录任一Master节点
kubectl get csr可以看到类似以下结果
NAME AGE REQUESTOR CONDITION
csr-dszds 18s system:node:192.168.0.1 Pending
approve以上证书
kubectl certificate approve <csr-name>
步骤4:验证结果,查看证书有效期
所有集群节点执行
echo -n | openssl s_client -connect localhost:10250 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text -noout | grep -A 2 Validity
可以看到类似以下结果
Validity
Not Before: Jun 16 09:04:56 2022 GMT
Not After : Jun 16 09:04:56 2023 GMT
kubernetes证书过期
更新时间:2023-08-29 18:36:44
修复步骤
可使用kubeadm重新生成证书
kubeadm的早期版本生成证书的功能放在alpha命令集下,修复的指令为:
kubeadm alpha certs check-expiration 查看证书
kubeadm alpha certs renew all
grep client-certificate-data /etc/kubernetes/kubelet.conf | cut -d: -f2 | tr -d ' ' | base64 -d | openssl x509 -noout -dates
比较新的kubeadm修复指令为:
kubeadm certs check-expiration 查看证书
kubeadm certs renew all
执行后必须重启节点上的组件
执行后,k8s的组件会删除
sudo mv /etc/kubernetes/manifests/ .yaml .
执行后,k8s的组件会重启
sudo mv ./ .yaml /etc/kubernetes/manifests/
验证步骤:
echo | openssl s_client -servername 127.0.0.1 -connect 127.0.0.1:10257 2>/dev/null | openssl x509 -noout -dates
echo | openssl s_client -servername 127.0.0.1 -connect 127.0.0.1:10259 2>/dev/null | openssl x509 -noout -dates