1. 课程导论:证书轮换导致 Deployment 副本数异常的典型场景与故障现象概述

在 Kubernetes 生产环境中,证书轮换是一项常规的安全运维操作。然而,当证书轮换流程与控制器管理组件(特别是 kube-controller-manager)的运行时状态发生耦合时,可能引发一种隐蔽且破坏性极强的故障——Deployment 副本数异常。本章节将系统性地定义该故障的典型场景、根因链路与核心现象,为后续的排查与修复奠定基础。

1.1 典型故障场景

证书轮换导致 Deployment 副本数异常并非随机发生,而是集中在以下三类高发场景中。运维人员应重点监控这些场景下的证书变更操作。

场景编号 场景名称 触发条件 影响范围
S1 kube-controller-manager 证书过期后批量轮换 使用自签 CA 或证书有效期较短(如 1 年),在证书到期前集中替换所有控制面组件证书 集群内所有 Deployment、StatefulSet、DaemonSet 等控制器管理的副本数
S2 kube-apiserver 客户端证书轮换未同步 kube-controller-manager 通过 kubeconfig 连接 apiserver,但轮换后 kubeconfig 中的证书未更新或更新延迟 仅影响使用该 kubeconfig 的控制器管理器所管理的资源
S3 etcd 客户端证书轮换导致控制器 watch 中断 etcd 证书轮换后,kube-controller-manager 的 watch 连接因证书校验失败而断开,且重连机制异常 副本数同步延迟,极端情况下导致副本数漂移
关键洞察: 上述场景的共同特征是证书轮换操作破坏了 kube-controller-manager 与 kube-apiserver 之间的 持续通信链路,导致控制器无法正确接收或处理 Deployment 的期望状态与当前状态。

1.2 故障根因链路

为了直观理解故障的传播路径,下图展示了从证书轮换操作到 Deployment 副本数异常的完整根因链路。

证书轮换导致 Deployment 副本数异常根因链路 证书轮换 → Deployment 副本数异常根因链路 证书轮换操作 kube-controller-manager 与 apiserver 通信中断 Deployment Watch 连接失效 期望/当前状态同步停滞 Deployment 副本数异常 故障传播说明 证书轮换 → 通信中断 → Watch 失效 → 状态停滞 → 副本数异常

1.3 故障现象概述

当证书轮换引发 Deployment 副本数异常时,运维人员通常会观察到以下一组或多组现象。这些现象可能单独出现,也可能组合出现,需要结合上下文进行判断。

  • 现象 A:副本数持续漂移 —— Deployment 的 replicas 字段在期望值与异常值之间反复跳动,例如期望 3 副本,实际在 1 和 5 之间波动。
  • 现象 B:副本数归零或激增 —— 控制器错误地将所有 Pod 标记为异常并删除(副本数归零),或反复创建 Pod 导致副本数远超预期(副本数激增)。
  • 现象 C:kube-controller-manager 日志报错 —— 日志中出现大量 Failed to watch *v1.Deployment、certificate has expired or is not yet valid、connection refused 等错误。
  • 现象 D:Deployment 状态显示异常 —— kubectl get deployment 输出中 AVAILABLE 列与 DESIRED 列长期不一致,且 kubectl describe deployment 显示 ReplicaFailure 或 FailedCreate 事件。
  • 现象 E:其他控制器同步延迟 —— 除 Deployment 外,StatefulSet、DaemonSet、Job 等控制器管理的资源也出现类似的副本数异常或同步延迟。
重要警示: 现象 E 是区分“证书轮换故障”与“单个 Deployment 配置错误”的关键标志。如果只有单个 Deployment 异常,优先排查应用配置;如果多个控制器同时出现副本数问题,应高度怀疑证书轮换导致的控制面通信故障。

1.4 故障影响评估矩阵

根据故障的严重程度和影响范围,可以将证书轮换导致的 Deployment 副本数异常划分为以下三个等级。运维团队应据此制定差异化的应急响应策略。

等级 影响范围 典型表现 建议响应时间
P0(严重) 全集群所有控制器管理的副本数异常 大量 Deployment 副本数归零或激增,核心业务中断 立即响应(15 分钟内)
P1(高) 部分节点或部分控制器异常 特定命名空间或特定控制器类型(如仅 Deployment)出现副本数漂移 1 小时内响应
P2(中) 单个 Deployment 或少量副本异常 副本数短暂波动后自动恢复,或仅影响非关键业务 24 小时内排查

1.5 课程学习路径

本课程将按照以下路径逐步深入,帮助学员掌握从现象识别到根因修复的完整技能链:

  1. 现象识别与确认 —— 通过 kubectl 命令、日志和监控指标快速定位异常。
  2. 证书状态检查 —— 验证 kube-controller-manager、kube-apiserver、etcd 等组件的证书有效期与轮换状态。
  3. 通信链路诊断 —— 检查 kube-controller-manager 与 apiserver 之间的连接健康度。
  4. 控制器状态恢复 —— 重启或重新加载 kube-controller-manager 以重建 Watch 连接。
  5. 证书轮换最佳实践 —— 制定安全的证书轮换流程,避免同类故障再次发生。