1. 课程概述:证书轮换的挑战与零停机策略

在生产环境中,TLS/SSL 证书是保障服务间通信安全、防止中间人攻击和数据泄露的核心基础设施。证书具有固定的有效期,一旦过期,客户端将拒绝连接,直接导致服务中断、业务受损。然而,手动或粗暴地替换证书往往伴随着重启进程、重新加载配置等操作,极易引发短暂的流量中断或连接失败。

本课程将深入讲解如何利用 Kubernetes 原生的 Deployment 滚动更新(RollingUpdate)策略,在不中断现有连接的前提下,安全、自动地完成证书轮换,实现真正的零停机运维。

证书轮换的三大痛点

痛点 描述 典型后果
证书过期 证书有效期通常为 90 天或 1 年,过期后 TLS 握手失败 服务不可用、客户端报错、安全扫描告警
手动替换风险 运维人员登录节点替换证书文件,容易遗漏或操作失误 部分 Pod 加载旧证书,导致灰度故障
重启中断 传统方式需要重启进程或重新加载配置,造成连接断开 长连接中断、请求超时、业务抖动

滚动更新如何实现零停机

Kubernetes Deployment 的滚动更新策略通过逐步替换 Pod 的方式,确保在整个证书轮换过程中始终有健康的 Pod 在处理流量。其核心机制包括:

  • 优雅终止(Graceful Shutdown):旧 Pod 在收到 SIGTERM 信号后,先停止接收新连接,等待已有请求处理完毕再退出。
  • 就绪探针(Readiness Probe):新 Pod 在加载新证书并通过 TLS 握手验证后,才被标记为 Ready 并加入 Service 端点。
  • 逐步扩缩容:通过 maxSurge 和 maxUnavailable 参数控制每次更新的 Pod 数量,保证可用副本数不低于阈值。
关键认知: 滚动更新不是简单地“替换证书文件”,而是通过创建携带新证书的新 Pod,逐步替换运行旧证书的旧 Pod。证书本身通常以 Secret 或 ConfigMap 挂载到 Pod 中,更新 Secret 后触发 Deployment 滚动更新。
证书轮换滚动更新流程 证书轮换滚动更新流程 阶段 1:旧证书集群 Pod-1 (旧证书) Pod-2 (旧证书) Pod-3 (旧证书) 阶段 2:滚动更新中 Pod-1 (旧证书) → 终止 Pod-2 (旧证书) → 运行中 Pod-4 (新证书) → 就绪 阶段 3:新证书集群 Pod-4 (新证书) Pod-5 (新证书) Pod-6 (新证书) 在整个过程中,Service 始终将流量转发给 Ready 状态的 Pod,客户端无感知 T0:初始状态 T1:逐步替换 T2:完成轮换

本课程涵盖的核心知识点

  • Deployment 滚动更新参数详解:maxSurge、maxUnavailable、minReadySeconds 的配置与调优。
  • 证书挂载策略:使用 Secret 或 ConfigMap 挂载证书,并通过 hash 或版本号触发更新。
  • 优雅终止与探针配合:配置 preStop hook、Readiness Probe 和 Liveness Probe 确保流量无损切换。
  • 自动化证书轮换方案:结合 cert-manager 自动签发证书,并通过 Reloader 或自定义控制器触发滚动更新。
  • 生产级验证与回滚:灰度验证新证书有效性,以及快速回滚到旧证书的应急方案。
学习目标: 完成本课程后,你将能够独立设计并实施一套基于 Kubernetes 滚动更新的证书轮换流水线,将证书过期导致的停机风险降至零,同时提升运维自动化水平。

适用人群

  • Kubernetes 集群管理员与平台运维工程师
  • DevOps 工程师与 SRE 工程师
  • 对服务高可用、安全运维感兴趣的开发人员

接下来,我们将从 Deployment 滚动更新的底层原理开始,逐步深入到证书轮换的具体实现与最佳实践。