1. 课程概述:证书轮换导致 Pod 调度失败的典型场景与课程目标

在 Kubernetes 生产环境中,证书轮换是保障集群安全的基础运维操作。然而,证书轮换并非总是平滑的——当控制平面组件(如 kube-apiserver、kube-controller-manager)或工作节点上的 kubelet 更新了 TLS 证书后,若相关组件未正确加载新证书,或证书信任链出现断裂,将直接导致 Pod 调度失败。这类问题隐蔽性强、排查链路长,是 SRE 工程师必须掌握的故障场景。

1.1 典型故障场景

证书轮换引发 Pod 调度失败,通常表现为以下三种模式:

故障模式 触发原因 典型现象
kubelet 证书过期 节点 kubelet 证书未自动轮换或轮换后未重启 kubelet 无法向 apiserver 注册,节点状态 NotReady,Pod 无法调度到该节点
apiserver 证书不匹配 apiserver 证书轮换后,kubelet 或 controller-manager 仍使用旧 CA 验证 kubelet 上报 401 Unauthorized,Pod 创建请求被拒绝
webhook 证书失效 准入控制器(Mutating/Validating Webhook)证书轮换后未更新 webhook 配置 Pod 创建时 webhook 调用失败,调度器无法完成准入检查,Pod 卡在 Pending
⚠️ 常见误区: 很多运维人员认为证书轮换后只需重启对应 Pod 即可。实际上,kubelet 和 apiserver 的证书验证是双向的,且涉及多个组件的缓存和连接池,仅重启 Pod 往往无法彻底修复。

1.2 故障链路分析

从证书轮换到 Pod 调度失败,中间经历了多个环节。下图展示了完整的故障传播链路:

证书轮换 → Pod 调度失败 故障链路 证书轮换操作 组件加载新证书 证书验证失败 节点 NotReady 调度器拒绝调度 Pod 卡在 Pending 故障传播说明: 1. 证书轮换后,kubelet 或 apiserver 未正确加载新证书 2. 双向 TLS 验证失败,组件间通信中断 3. 节点状态变为 NotReady,调度器过滤掉该节点 4. 新 Pod 无法调度,持续处于 Pending 状态 5. 已有 Pod 可能因健康检查失败被驱逐

1.3 课程目标

通过本课程的学习,你将掌握以下核心能力:

  • 精准定位:使用 kubectl debug 命令快速诊断证书轮换导致的调度失败,区分证书问题与资源不足、污点等常见原因。
  • 深入理解:掌握 Kubernetes 组件间 TLS 证书验证机制,包括 kubelet 证书轮换策略、apiserver 证书信任链、webhook 证书配置。
  • 实战修复:针对不同故障模式,给出可落地的修复方案,包括证书手动轮换、组件重启、配置更新等操作。
  • 预防加固:建立证书轮换的监控告警体系,设计自动化轮换策略,避免同类问题重复发生。
💡 课程特色: 本课程全程基于真实故障案例,所有调试命令均可在测试环境复现。你将学会如何用 kubectl debug 创建临时诊断容器,在目标节点或 Pod 的网络命名空间中执行证书验证、抓包分析、日志排查等操作。

1.4 适用人群

角色 收益
Kubernetes 运维工程师 掌握证书轮换故障的标准化排查流程,缩短故障恢复时间
SRE 工程师 深入理解控制平面与工作节点间的安全通信机制,提升集群稳定性
云原生架构师 设计高可用的证书管理方案,避免单点故障
平台开发工程师 在开发阶段规避证书相关的调度问题,提升平台健壮性

1.5 前置知识

为获得最佳学习效果,建议你具备以下基础:

  • 熟悉 Kubernetes 基本概念:Pod、Node、kubelet、kube-apiserver
  • 了解 TLS/SSL 证书的基本原理:公钥、私钥、CA、证书链
  • 掌握 kubectl 常用命令:get、describe、logs、exec
  • 具备基本的 Linux 网络调试能力:curl、openssl、tcpdump