1. 课程导论:为什么需要零停机证书轮换?
在云原生架构中,TLS/SSL 证书是保障服务间通信安全的核心组件。然而,证书具有有限的生命周期(通常为 90 天至 1 年),到期前必须完成轮换。传统证书轮换方式在 Kubernetes 环境中往往导致服务中断、连接错误甚至安全漏洞。本章将系统分析传统方案的痛点,并引出零停机轮换的必要性。
1.1 证书轮换的基本场景
Kubernetes 集群中证书的使用场景包括:
| 场景 | 证书类型 | 轮换影响范围 |
|---|---|---|
| Ingress 网关 | 服务端证书(TLS) | 外部流量入口,中断即丢失请求 |
| Service Mesh(如 Istio) | mTLS 证书 | 所有 Sidecar 代理之间的通信 |
| Kube-APIServer | CA 证书 + 服务证书 | 整个控制平面可用性 |
| 应用间内部调用 | 自签或机构签发证书 | 业务链路上的每个 Pod |
无论哪种场景,证书轮换的核心目标都是:在旧证书失效前,新证书已生效且被所有依赖方信任。
1.2 传统证书轮换的典型流程与痛点
传统做法通常包含以下步骤:
- 手动或脚本更新 Secret:将新证书内容写入 Kubernetes Secret 对象。
- 重启 Pod 或触发重新加载:通过
kubectl rollout restart或向进程发送 SIGHUP 信号。 - 等待所有 Pod 就绪:期间部分 Pod 持有旧证书,部分持有新证书。
- 清理旧证书:删除过期 Secret 或等待自动过期。
这一流程存在以下严重风险:
⚠️ 核心风险: 重启 Pod 时,Kubernetes 默认的滚动更新策略无法保证证书切换的原子性。新旧 Pod 同时运行期间,客户端可能连接到持有旧证书的 Pod 而验证失败,导致 502/503 错误或 TLS 握手失败。
| 痛点 | 具体表现 | 影响等级 |
|---|---|---|
| 连接中断 | Pod 重启期间,旧 Pod 被终止,新 Pod 尚未就绪,流量丢失 | 高 |
| 证书不一致 | 同一 Service 后端 Pod 持有不同版本的证书,客户端验证失败 | 高 |
| 手动操作失误 | 证书内容复制错误、Secret 名称拼错、权限不足 | 中 |
| 回滚困难 | 新证书有问题时,旧证书已被删除或过期,无法快速恢复 | 高 |
| 监控缺失 | 证书过期前无告警,轮换过程无可视化追踪 | 中 |
1.3 零停机证书轮换的核心目标
零停机证书轮换要求在整个轮换过程中:
- 流量零丢失:客户端请求始终被正确处理,无 502/503/连接拒绝。
- 证书一致性:同一 Service 后端的所有 Pod 在同一时间窗口内持有相同的有效证书。
- 自动且可观测:轮换过程自动化,并提供清晰的进度和健康状态反馈。
- 快速回滚:新证书出现问题时,能在秒级恢复到旧证书。
💡 关键洞察: 实现零停机轮换的本质是 控制 Pod 的调度顺序与流量切换时机。Kubernetes 的亲和性调度(Node Affinity / Pod Affinity)恰好提供了这种细粒度控制能力。
1.4 传统轮换 vs 零停机轮换对比
| 维度 | 传统轮换 | 零停机轮换(本课程方案) |
|---|---|---|
| Pod 重启方式 | 滚动更新,无顺序控制 | 基于亲和性分批调度 |
| 证书切换时机 | Pod 启动后立即切换 | 等待所有 Pod 就绪后统一切换 |
| 流量中断风险 | 高 | 零 |
| 回滚能力 | 弱(需手动恢复 Secret) | 强(保留旧版本 Pod 副本) |
| 自动化程度 | 半自动(需手动触发重启) | 全自动(Operator 驱动) |
1.5 为什么选择 Kubernetes 亲和性调度?
Kubernetes 提供了多种调度策略,但亲和性调度(Affinity)在证书轮换场景中具有独特优势:
- Pod 反亲和性:确保新旧版本 Pod 不会被调度到同一节点,避免节点级故障影响所有副本。
- 节点亲和性:将新版本 Pod 固定到特定节点组,便于流量隔离和灰度验证。
- 拓扑分布约束:控制 Pod 在不同可用区/节点间的分布,保证轮换期间集群整体容量。
📌 课程预告: 从第 2 章开始,我们将深入讲解如何利用
podAntiAffinity 和 nodeAffinity 构建证书轮换的调度策略,并结合 Cert-Manager 与自定义 Operator 实现全自动零停机轮换。
1.6 本章小结
传统证书轮换方式在 Kubernetes 环境中存在连接中断、证书不一致、回滚困难等严重风险。零停机轮换通过控制 Pod 调度顺序和流量切换时机,从根本上解决了这些问题。Kubernetes 亲和性调度提供了实现这一目标的基础能力,是构建高可用证书管理方案的关键技术。