解决k8s证书过期:自动轮换与设置长期有效期

版权申诉
5星 · 超过95%的资源 1 下载量 131 浏览量 更新于2024-09-09 收藏 4KB TXT 举报
"本文档主要介绍了如何处理在k8s(Kubernetes)集群中使用kubeadm安装时,默认证书有效期到期后的处理方法。kubeadm默认为证书设置了一年的有效期,一旦超过这个期限,apiservice将不可用,并可能出现`x509:certificatehasexpiredorisnotyetvalid`错误。本文重点关注服务器(server)证书的自动轮换,因为自k8s 1.9版本起,客户端(client)证书已经默认支持自动更新,而服务器证书则需要用户手动配置或开启自动轮换功能。 首先,对于服务器证书的自动轮换,需要在kubelet配置文件中添加相应的参数。在`/etc/sysconfig/kubelet`中加入`--feature-gates=RotateKubeletServerCertificate=true`和`--rotate-server-certificates=true`,确保开启这一特性。同时,也需要在kube-controller-manager的配置文件`kube-controller-manager.yaml`中进行调整,增加`--experimental-cluster-signing-duration=87600h0m0s`以指定证书的有效期,以及`--feature-gates=RotateKubeletServerCertificate=true`来启用服务器证书签发功能。 如果集群中有多个主节点(masters),确保所有节点都配置了这些参数。此外,为了允许节点进行kubelet server证书的自动更新,还需要创建一个RBAC(Role-Based Access Control)对象,例如通过`ca-update.yaml`文件定义适当的权限,以便kubelet能够执行证书轮换操作。 当k8s证书过期时,管理员需要配置kubelet和kube-controller-manager以支持服务器证书的自动轮换,并可能需要调整RBAC权限来确保集群的正常运行。遵循这些步骤,可以避免因证书问题导致的集群服务中断,保持系统的稳定性和安全性。"