证书续签
默认的证书只有一年,续签证书不更换CA,仅重新签发客户端证书,延长有效期。
如果在使用时返回如下错误,说明证书过期,需要续签:
Unable to connect to the server: tls: failed to verify certificate: x509: certificate has expired or is not yet valid: current time xxx is after xxx
检查当前证书有效期
在master执行,如果有多台master,建议在每台master上逐台执行
kubeadm certs check-expiration
续签证书
续签 apiserver 相关证书
kubeadm certs renew all
检查续签结果,确认新的过期时间已延长
kubeadm certs check-expiration
强制重新加载新证书
kubernetes 不会自动重启 apiserver,需手动触发 manifest reload,推荐以下安全操作方式。 移动 manifests 文件会使 kubelet 停止 static pod,恢复文件后 kubelet 会自动重新创建 static pod,整个过程大约中断 10~30 秒
mkdir -p /root/tmp
mv /etc/kubernetes/manifests/* /root/tmp/
# 等待 kubelet 检测,apiserver、controller-manager、scheduler 停止,例如通过crictl ps查看
mv /root/tmp/* /etc/kubernetes/manifests/
验证结果
# 验证新证书生效
echo | openssl s_client -connect 127.0.0.1:6443 -servername kubernetes 2>/dev/null | openssl x509 -noout -dates
# 拷贝新生成的 kubeconfig 到默认路径
cp /etc/kubernetes/admin.conf ~/.kube/config
# 检查 kube-apiserver Pod 状态
kubectl get pods -n kube-system -l component=kube-apiserver -o wide