kaisawind's blog
  • 关于
  • 所有帖子

k8s的kubelet证书过期重生成 - Fri, Dec 4, 2020

k8s的kubelet证书过期重生成

k8s的kubelet证书过期重生成

注意: Kubernetes证书默认有效期为1年。从Kubernetes 1.15开始,证书管理命令已从kubeadm alpha移至正式命令。

1. 检查证书状态

# 检查证书有效期(新版本)
kubeadm certs check-expiration

# 旧版本使用
kubeadm alpha certs check-expiration

输出示例:

CERTIFICATE                EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
admin.conf                 Nov 30, 2021 20:10 UTC   361d            no      
apiserver                  Nov 30, 2021 20:09 UTC   361d            no      
apiserver-etcd-client      Nov 30, 2021 20:09 UTC   361d            no      
apiserver-kubelet-client   Nov 30, 2021 20:09 UTC   361d            no      
controller-manager.conf    Nov 30, 2021 20:09 UTC   361d            no      
etcd-healthcheck-client    Nov 30, 2021 05:42 UTC   361d            no      
etcd-peer                  Nov 30, 2021 05:42 UTC   361d            no      
etcd-server                Nov 30, 2021 05:42 UTC   361d            no      
front-proxy-client         Nov 30, 2021 20:09 UTC   361d            no      
scheduler.conf             Nov 30, 2021 20:09 UTC   361d            no

2. 更新控制平面证书

# 新版本(Kubernetes 1.15+)
kubeadm certs renew all

# 旧版本
kubeadm alpha certs renew all

3. 更新kubelet证书

证书更新后,kubelet证书可能不会自动更新。需要手动处理:

3.1 检查kubelet状态

systemctl status kubelet

如果kubelet无法启动,查看详细日志:

journalctl -xefu kubelet

错误示例:

bootstrap.go:264] Part of the existing bootstrap client certificate is expired: 2020-04-11 02:01:22 +0000 UTC

3.2 重新生成kubelet配置

# 方法1:使用kubeadm生成新配置
cd /etc/kubernetes/
kubeadm kubeconfig user --org system:nodes --client-name system:node:$(hostname) > kubelet.conf

# 方法2:删除旧的证书和配置,让kubelet自动重新生成
rm -f /var/lib/kubelet/pki/*
rm -f /etc/kubernetes/kubelet.conf
systemctl restart kubelet

3.3 重启kubelet

systemctl daemon-reload
systemctl restart kubelet
systemctl status kubelet

4. 更新kubectl配置

# 更新admin配置
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

5. 最佳实践

  1. 设置证书自动更新:在kubeadm配置中启用自动证书轮换
  2. 监控证书过期时间:定期检查证书状态
  3. 备份证书:在更新前备份/etc/kubernetes/pki目录
  4. 使用外部CA:对于生产环境,考虑使用外部CA管理证书


辽ICP备2021007608号 | © 2026 | kaisawind

Facebook Twitter GitHub