自动 Kubernetes 证书轮换
本指南将帮助您在 中安装、了解和操作 Kubernetes Certificate Rotator,以自动轮换集群中的 Kubernetes 证书。
从 ACP 4.5 开始,ACP Kubernetes Certificates Rotator 更名为 ACP Cluster Certificate Rotation。从 Customer Portal 下载插件时,请搜索 ACP Cluster Certificate Rotation。重命名前发布的插件包上传后,在平台中仍显示为 ACP Kubernetes Certificates Rotator。
安装
有关安装说明,请参阅 Cluster Plugin。
注意:
当前支持:
- On-Premises 集群
- DCS 集群
工作原理
此插件处理以下证书的自动轮换。
轮换流程
-
加载证书信息
初始步骤包括收集所有目标证书的元数据。由于这些证书存储在主机上的不同路径中,因此必须从相应文件中读取其内容。为此,系统会在目标节点上创建一个临时 Pod,并挂载证书目录,使 Pod 能够读取相关信息。证书信息每天收集一次。证书详细信息(路径、过期时间)保存在 ConfigMap
cpaas-system/node-local-certs-<node-name>中。加密的 CA 证书存储在 Secretcpaas-system/kubernetes-ca中。 -
轮换触发条件
证书的
notBefore和notAfter字段表示有效期。如果剩余有效期少于 20% 或 30 天,则会触发轮换。 -
轮换队列
需要轮换的证书会放入队列进行处理。轮换程序会评估近期的轮换活动和待处理任务的紧急程度,以决定是否立即处理这些任务。这可以防止同时轮换多个证书导致潜在的集群运行状况问题。
-
生成新证书
轮换程序根据内部存储的 CA 信息生成新证书。轮换过程中,系统会在目标节点上创建一个临时 Pod,并挂载所需的证书目录,以便受控地修改文件。
-
重启组件
需要重启:
kube-apiserver:需要重启以加载新证书。重启期间,它会重新生成内部环回证书(有效期为一年,仅供内部使用,不能从外部轮换)。kube-controller-manager:需要重启以重新加载 kubeconfig 文件。kube-scheduler:需要重启以重新加载 kubeconfig 文件。kubelet:需要重启以重新加载服务器证书。
重启方法:向相应静态 Pod 的 YAML 文件添加注解,以触发 kubelet 重新创建 Pod。要重启 kubelet,请使用
hostPID is true挂载主机文件系统,并在容器中运行 "systemctl restart kubelet"。自动重新加载:
- Etcd 可以自动重新加载证书。
-
轮换时间表
kubelet证书:在第 61 天轮换(有效期为 91 天)- 控制平面证书:在第 292 天轮换(有效期为 365 天)
操作注意事项
如果 kubelet 在轮换窗口期间处于异常状态,无法自动轮换证书,则需要手动轮换:
操作员必须手动续订证书。
运行以下命令手动续订证书:
例如,续订 kubelet.crt:
要下载并准备 cert-renew 工具,请运行:
也可以下载 renew-all.sh,以续订节点上的所有证书: