在 CentOS 上运行的 Kubernetes(k8s)证书过期,通常不是 CentOS 本身的问题,而是 Kubernetes 自身的证书管理机制 导致的。下面从原因、机制、常见场景和解决办法几个角度说明。
Kubernetes 在初始化(kubeadm init)时会自动生成一批证书,例如:
apiserver 证书apiserver-kubelet-clientfront-proxy-clientetcd 相关证书ca(通常 10 年)admin.conf / kubelet.conf默认有效期:
⚠️ 1 年后如果不续期,就会出现证书过期问题
kubeadm 不会自动轮换证书kubeadm certs renewkubeadm initCentOS 只是运行环境,可能“间接”导致问题:
x509: certificate has expired or is not yet valid
kubectl 无法连接 apiserverkubelet 无法注册节点kube-apiserver 起不来journalctl -u kubelet 报错kubeadm certs check-expiration
示例输出:
CERTIFICATE EXPIRES
apiserver Jan 10, 2025
apiserver-kubelet-client Jan 10, 2025
# 续期所有证书
kubeadm certs renew all
# 重启控制平面组件
systemctl restart kubelet
⚠️ 如果是多 master,每个节点都要执行
mv ~/.kube/config ~/.kube/config.bak
cp -i /etc/kubernetes/admin.conf ~/.kube/config
kubeadm reset
kubeadm init
❌ 会丢集群状态,仅测试环境使用
0 0 1 1 * kubeadm certs renew all
timedatectl status
chronyc sources
CentOS 上 k8s 证书过期,根本原因是 Kubernetes 默认证书有效期只有 1 年,而 kubeadm 不会自动续期。
如果你愿意,可以告诉我:
kubeadm我可以给你精确的修复步骤。