跳到主要内容

证书续签

默认的证书只有一年,续签证书不更换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