RKE2 是符合 FIPS 的 Kubernetes 发行版,自行管理 TLS 证书并内置升级机制。本技能覆盖证书生命周期管理和版本升级两类运维任务,核心原则是:升级时始终先升级控制平面(server)节点再升级工作(agent)节点;轮换前必须检查证书;版本升级前必须做健康检查。
适用场景:检查或轮换 RKE2 TLS 证书;手动或自动升级 RKE2 集群版本;部署 System Upgrade Controller 实现自动滚动升级;排查证书过期警告或 TLS 错误;规划证书或版本操作的维护窗口。不适用于:RKE2 初始安装、Kubespray 管理的集群、Rancher UI 驱动的升级。
证书管理:客户端证书和服务器证书默认有效期 365 天,CA 证书 10 年且不自动轮换。RKE2 在每次服务启动时检查证书过期情况,若任一证书距到期不足 120 天,会在启动期间自动续期;Kubernetes 也会在证书距过期不足 120 天时发出 CertificateExpirationWarning 事件。这意味着若集群连续运行超过约 245 天未重启,证书不会自动续期,需要定期维护重启或手动轮换。
检查证书使用 rke2 certificate check --output table,输出包含文件名、主题、用途、过期时间、剩余时间和状态(ok 或 expiring)。server 节点持有 kube-apiserver、kube-scheduler、kube-controller-manager、kubelet、kube-proxy、etcd、rke2-supervisor 的证书;agent 节点持有 kubelet、kube-proxy、rke2-controller 的证书。
手动轮换步骤:停止 rke2-server 服务,执行 rke2 certificate rotate(生成新证书并将旧证书备份到带时间戳目录),用 check 命令验证新有效期,启动服务,复制 /etc/rancher/rke2/rke2.yaml 到 ~/.kube/config(远程访问还需更新 server 字段),最后验证节点、系统 Pod 和 API server 健康状态。工作节点会自动重连并获取新证书,无需手动操作。多 server 节点需逐个轮换,每个完成并重新加入后再处理下一个。
手动版本升级:升级前在多个终端分别监控应用可用性、Pod 状态、节点状态和 etcd 健康;可用 curl -s https://update.rke2.io/v1-release/channels | jq '.data[] | {id, latest}' 查看各发布通道的最新版本。Kubernetes 1.28+ 支持控制平面与工作节点间 3 个小版本偏差。升级 server 节点时执行 curl -sfL https://get.rke2.io | INSTALL_RKE2_CHANNEL=v1.34 sh - 就地升级 RPM,然后 systemctl restart rke2-server,验证版本后逐个处理其余 server 节点。全部 server 完成后升级 agent:curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE=agent INSTALL_RKE2_CHANNEL=v1.34 sh -,重启 rke2-agent 并验证;生产环境建议先 drain 节点、升级后再 uncordon。升级后需验证节点版本、系统 Pod、API server 健康、etcd 健康和应用响应。
自动升级:System Upgrade Controller(SUC)通过 Plan CRD 自动化 RKE2 升级,为每个节点创建 Job 执行实际升级。先应用 crd.yaml 和 system-upgrade-controller.yaml 清单,验证 system-upgrade 命名空间、Deployment 和 CRD 注册。需要两个 Plan:server-plan 使用 concurrency: 1、cordon: true,通过 nodeSelector 匹配带 control-plane 标签的节点;agent-plan 匹配不带该标签的节点,并通过 prepare 步骤引用 server-plan,确保控制平面完成后再升级工作节点,concurrency 可设为 2 并行升级工作节点(视集群容量调整)。两个 Plan 都通过 channel 字段从 https://update.rke2.io/v1-release/channels/latest 解析最新版本,upgrade 镜像为 rancher/rke2-upgrade。用 kubectl get plans -n system-upgrade -w 和 jobs 监控进度。升级完成验证后,依次删除 Plan、控制器清单和 CRD 完成清理。
常见错误排查:x509 证书过期(服务运行超过 245 天未重启)需停服务、轮换、验证后启动;CertificateExpirationWarning 事件提示需安排维护窗口重启或手动轮换;轮换后 kubeconfig 报 unknown authority 需重新复制 rke2.yaml;节点主机名或 IP 变更导致 SAN 不匹配需轮换证书重新生成。