k8s 证书更新

如何使用脚本更新Kubernetes集群证书

引言

Kubernetes集群中,由kubeadm初始化的证书有效期默认为一年。当这些证书接近或已经超过有效期时,它们必须被更新以保证集群的正常运作。本文将介绍如何使用特定脚本来更新这些证书,将它们的有效期延长至十年。

准备工作

在开始之前,请确保你的环境满足以下条件:

  • 已经安装了git,以便能够从GitHub克隆脚本。
  • 你的Kubernetes集群是由kubeadm初始化的。
  • 你有足够的权限在master节点上执行操作。
拉取更新证书脚本

打开终端,执行以下命令来拉取脚本:

yum install git

git clone https://github.com/yuyicai/update-kube-cert.git

cd update-kube-cert

chmod 755 update-kubeadm-cert.sh

更新证书

接下来,使用以下命令更新证书。如果集群使用的是containerd作为容器运行时,记得加上--cri containerd参数;否则,使用默认的docker运行时。

./update-kubeadm-cert.sh all --cri docker

请注意,执行命令时应当使用./bash来调用脚本,避免直接使用sh,以防在某些Linux发行版中因sh并非指向bash而引发的不兼容问题。

处理控制面Pods

执行完更新命令后,需要重启控制面的Pods。这是因为动态证书重载尚未被所有组件支持,所以手动重启是必要的。具体操作是将位于/etc/kubernetes/manifests/目录下的Pod清单文件临时移除,等待约20秒(取决于fileCheckFrequency值),然后将文件放回原处。这样kubelet将会终止和重新创建Pod,完成证书的更新。

输出示例与确认

执行更新后,脚本会输出类似的信息,列出已更新的证书和配置文件及其新的到期日期。例如:

此外,脚本还会记录备份和更新过程的日志,包括重启etcd、apiserver、controller-manager、scheduler等组件的信息,以及kubelet的重启。

总结

通过以上步骤,你可以成功地更新Kubernetes集群的证书,避免由于证书过期导致的集群不可用问题。记得在多master节点环境中,需要在每个master节点上重复执行上述步骤。

最后,确保检查更新后的集群状态,以验证更新过程是否成功,避免任何潜在的问题影响集群的稳定性和可用性。

参考资料

kubeadm certs renew all

通过以上指南,你可以有效地管理和维护Kubernetes集群的证书生命周期,确保集群的长期稳定运行。

相关推荐
阿里云云原生1 小时前
AI 提效是“假象”还是“红利”?用 LoongSuite + SLS 构建组织级 AI 编码度量看板
云原生
极客先躯2 小时前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
Java识堂3 小时前
如何对微服务进行拆分?
微服务·云原生·架构
某林2123 小时前
Isaac Sim 5.1.0 无头服务器部署与 RTX 显存段错误排障全记录
运维·服务器·docker·容器·isaac
m0_738120724 小时前
Docker 环境下 Vulfocus 靶场搭建全流程(附镜像源问题解决方案)
运维·服务器·网络·安全·docker·容器
Plastic garden5 小时前
K8s知识(3) Pod亲和性,调度
云原生·容器·kubernetes
霸道流氓气质6 小时前
从MySQL到云原生:全面解析阿里云PolarDB数据库及其与MySQL的核心差异
数据库·mysql·云原生
木雷坞6 小时前
Playwright MCP Docker 部署:mcr 镜像、浏览器工具和权限配置
运维·docker·容器·mcp
暮云星影6 小时前
个人总结 docker搭建私人照片云相册Immich
docker·容器·arm