kubeadm证书续签

在 Kubernetes 集群中,kubeadm 提供了管理证书的功能,包括自动续签证书。以下是关于如何使用 kubeadm 自动续签证书的详细步骤:


证书自动续签机制

Kubernetes 1.15 及更高版本中,kubeadm 部署的证书默认有效期为 1 年。Kubernetes 控制平面包含一个名为 kube-controller-manager 的组件,它运行一个 certificatesigningrequests 的控制器,可以自动签发新证书。

开启自动续签

kubeadm 的证书自动续签需要在集群中启用 kubelet自动轮换功能

1. 确保启用了证书轮换

检查 kubelet 的配置文件 /var/lib/kubelet/config.yaml,确保启用了以下选项:

serverTLSBootstrap: true
rotateCertificates: true

如果没有这两个选项,请添加它们,然后重启 kubelet

systemctl restart kubelet

这会启用 kubelet 定期轮换其自己的证书。


检查证书过期时间

使用以下命令查看证书的有效期:

kubeadm certs check-expiration

输出会显示所有证书的过期日期,例如:

CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Aug 17, 2025 08:47 UTC   364d            ca                      no
apiserver                  Aug 17, 2025 08:47 UTC   364d            ca                      no
...

手动续签证书

如果发现证书即将过期,可以手动触发证书续签:
如果是高可用部署的k8s集群,则需要在所有master执行

  1. 更新所有证书

    kubeadm certs renew all
    
  2. 仅更新某个特定证书
    比如更新 API 服务器证书:

    kubeadm certs renew apiserver
    
  3. 更新后重启组件
    续签证书后,需要重启 Kubernetes 控制平面组件以加载新证书:

    systemctl restart kubelet
    

常见问题

  1. 如何查看 kubeadm 生成的证书路径?
    默认情况下,kubeadm 管理的证书存储在 /etc/kubernetes/pki

  2. kubelet 自动轮换失败怎么办?
    如果 kubelet 证书未自动更新,可以手动删除 /var/lib/kubelet/pki 中的旧证书,重启 kubelet

    rm -rf /var/lib/kubelet/pki/*
    systemctl restart kubelet
    
  3. 证书更新后仍提示过期?
    确保所有相关服务(如 kube-apiserverkube-controller-managerkube-scheduler)已重启加载新证书。


通过以上方法,可以确保 kubeadm 管理的证书在到期前自动更新,避免集群因证书过期导致的不可用问题。

posted @   broadviews  阅读(118)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示