1. 课程导论:为什么需要关注滚动更新中的镜像安全与容量?
Kubernetes Deployment 的滚动更新(Rolling Update)是生产环境中发布新版本应用的标准策略。它通过逐步替换旧 Pod 实例来保证服务不中断。然而,在实际运维中,许多团队只关注更新策略的配置(如 maxSurge、maxUnavailable),却忽视了镜像安全水位与集群容量这两个关键维度,导致更新过程成为安全漏洞的窗口期或集群资源耗尽的风险点。
常见误区: 认为滚动更新只是“替换 Pod”,镜像只要拉得下来就行;容量只要 Pod 能调度就行。这种认知在单集群、低并发场景下或许可行,但在多租户、高合规、资源紧张的生产环境中,极易引发安全事故或服务抖动。
1.1 为什么镜像安全水位是滚动更新的“隐形红线”?
滚动更新本质上是一个“镜像替换”过程。新镜像的安全水位直接决定了更新后的集群是否暴露于已知漏洞之下。以下是三个核心风险场景:
- 基础镜像漏洞蔓延: 开发团队使用过时的
node:14或python:3.8-slim基础镜像,其中包含大量已知 CVE(如 Log4j、OpenSSL 高危漏洞)。滚动更新后,这些漏洞会瞬间扩散到整个集群。 - 镜像签名与完整性缺失: 未验证镜像签名或摘要(Digest),导致更新时可能拉取到被篡改的恶意镜像,造成供应链攻击。
- 合规水位不一致: 不同环境(开发/预发/生产)的镜像安全扫描策略不一致,导致生产环境滚动更新时,新镜像未通过安全准入检查而被拒绝调度,引发更新卡死。
关键指标: 镜像安全水位通常由 CVE 严重等级阈值(如禁止 Critical 级别漏洞)、镜像签名验证状态、基础镜像新鲜度(距离上次构建不超过 30 天)三个维度定义。
1.2 为什么容量巡检是滚动更新的“资源护栏”?
滚动更新过程中,新旧 Pod 会短暂共存。如果集群容量规划不足或未考虑更新时的资源峰值,极易触发节点资源竞争、Pod 驱逐甚至级联故障。
| 容量风险场景 | 触发条件 | 典型后果 |
|---|---|---|
| 节点资源碎片化 | 新 Pod 请求资源(CPU/Memory)大于节点剩余可调度资源 | Pod 处于 Pending 状态,更新进度阻塞 |
| 临时资源峰值超限 | maxSurge 设置过大,新 Pod 批量创建导致节点 OOM 或 CPU 节流 |
节点 NotReady,旧 Pod 被强制驱逐,服务中断 |
| 存储卷与网络 IP 耗尽 | PVC 容量不足或节点可用 IP 池枯竭 | 新 Pod 无法挂载卷或分配 IP,更新失败 |
| 集群弹性伸缩滞后 | Cluster Autoscaler 响应慢于更新速度,节点扩容跟不上 Pod 调度需求 | Pod 长时间 Pending,更新超时回滚 |
1.3 课程目标与受众
本课程旨在帮助运维与安全团队建立一套可落地的 滚动更新镜像安全水位与容量巡检体系,从策略定义、工具链集成到自动化巡检,覆盖更新全生命周期。
课程核心交付: 一套基于 OPA/Gatekeeper 的镜像安全准入策略模板 + 一套基于 Prometheus + Kube-capacity 的容量巡检 Dashboard 配置。
课程目标
- 掌握镜像安全水位的定义方法(CVE 阈值、签名验证、基础镜像策略)。
- 学会在滚动更新前自动执行镜像安全扫描与准入检查。
- 理解滚动更新过程中的容量模型(临时资源峰值、节点碎片、弹性伸缩)。
- 能够搭建容量巡检指标与告警体系,在更新前发现资源瓶颈。
- 通过实际案例,掌握更新失败时的回滚与应急处理流程。
目标受众
- Kubernetes 运维工程师: 负责集群日常管理与更新发布,需要避免更新引发的故障。
- DevOps 工程师: 设计 CI/CD 流水线,需要将安全与容量检查嵌入发布流程。
- 安全架构师: 制定容器镜像安全策略与合规基线,确保供应链安全。
- 平台工程师: 构建内部开发者平台(IDP),需要提供安全的滚动更新能力。
1.4 滚动更新安全与容量巡检全景图
下图展示了滚动更新过程中,镜像安全水位与容量巡检的协同工作流程:
1.5 课程章节速览
| 章节 | 核心内容 | 实践产出 |
|---|---|---|
| 2-5 | 镜像安全水位定义与扫描工具链 | Trivy 扫描策略 + Cosign 签名集成 |
| 6-10 | 滚动更新准入控制与策略即代码 | OPA Gatekeeper 镜像安全约束模板 |
| 11-18 | 容量巡检指标体系与监控配置 | Prometheus 告警规则 + Grafana 面板 |
| 19-24 | 自动化巡检流水线设计与故障演练 | GitOps 流水线 + Chaos Mesh 实验 |
| 25-30 | 生产案例、回滚策略与持续改进 | Runbook 模板 + 巡检报告自动化 |
学习建议: 本课程偏重实战,建议读者提前准备一个 Kubernetes 测试集群(版本 ≥ 1.24),并安装 Helm、kubectl 等基础工具。每章末尾的“动手练习”环节是掌握知识的关键,请务必在真实环境中操作一遍。