K8S集群证书过期,一键修复指南 | 干货分享

科技   2024-10-09 10:57   黑龙江  

在日常维护Kubernetes集群时,如果在安装的时候没有把证书设置足够长的时间,那运行一段时间k8s就会面临证书过期的问题。如果处理不及时,会导致kubectl命令无法使用,集群服务瘫痪。本文将详细讲解在k8s集群证书已经过期的情况下,如何检查和更新证书,有效延长证书的有效期,并确保集群恢复正常运行。通过几步操作,你可以轻松解决证书过期问题,避免实验环境或生产集群长时间宕机。

一、检查证书状态

首先,我们需要检查Kubernetes集群中各个组件证书的有效期,确定哪些证书已经过期或即将过期。在k8s控制节点执行以下命令查看证书状态:

kubeadm certs check-expiration

该命令将返回所有组件证书的过期日期和剩余时间,如下所示:

CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGEDadmin.conf                 Sep 24, 2024 13:49 UTC   <invalid>       ca                      no      apiserver                  Sep 24, 2024 13:49 UTC   <invalid>       ca                      no      ...

如果发现某些证书的过期时间已到或即将到达,下一步就该立即更新这些证书了。

二、更新证书

要更新证书,Kubernetes 提供了简便的命令来更新所有或部分组件的证书。在k8s制节点执行以下命令更新所有证书:

kubeadm certs renew all

该命令会自动更新所有到期或即将过期的证书。如果你只想更新某个特定的证书,也可以通过如下命令指定:

kubeadm certs renew <certificate-name>

常见的证书名称包括:

  • apiserver

  • apiserver-etcd-client

  • apiserver-kubelet-client

  • etcd-server

  • etcd-peer

  • etcd-healthcheck-client


三、验证证书更新

更新证书后,我们可以再次检查这些证书是否已经成功更新。k8s制节点执行以下命令查看更新后的证书有效期:

kubeadm certs check-expiration

确保所有证书都已经显示出新的过期时间。

四、重启控制平面组件

证书更新后,需要重启Kubernetes的控制平面组件使其生效。由于动态证书重载目前并不支持所有组件,所以需要手动重启控制平面的Pod。以下是具体步骤:

1、移动控制平面节点的清单文件
清单文件通常位于/etc/kubernetes/manifests/目录下,将它们暂时移动到一个临时目录以便Kubelet停止相应的Pod:

mv /etc/kubernetes/manifests/*.yaml /tmp/

2、等待Pod终止
等待一段时间(例如60秒),然后检查Pod是否已成功停止:

sleep 60crictl ps

3、将清单文件移回原始位置
确认Pod终止后,将清单文件移回原始目录以便Kubelet重新创建Pod并加载新的证书:

mv /tmp/*.yaml /etc/kubernetes/manifests/

4、再次检查Pod是否正常运行
等待Pod重新启动,并再次使用crictl ps命令检查它们是否已经使用新的证书成功:

sleep 60crictl ps

5、重启Kubelet服务

完成以上操作后,重新启动kubelet服务以确保所有组件都正常加载新的证书:

sudo systemctl restart kubelet

六、HA集群注意事项

如果你的Kubernetes集群是多主节点架构(HA架构),需要在所有主节点上依次执行证书更新和组件重启的操作,以确保整个集群都能正确更新证书并恢复服务。

七、总结

证书过期虽然是Kubernetes运维中的常见问题,但通过以上几个简单的步骤,可以快速修复这个问题,保证集群服务的正常运行。记得定期检查证书的有效期,避免因过期导致的不可用情况发生。

本月精彩文章推荐

DevOps和k8s全栈技术
专注于DevOps,Kubernetes,Linux,Docker,istio,微服务,Spring Cloud,python,go,数据库,Nginx,Tomcat,云计算等技术分享~
 最新文章