1. 课程导入与全景认知

在传统数据中心时代,一个应用上线通常意味着:运维人员手工编译、打包、上传到固定几台服务器,再通过堡垒机执行部署脚本。整个链路的“物料”来源相对封闭,变更频率低,出问题时排查范围也有限。而进入云原生时代后,一次生产发布背后可能涉及:基础镜像来自公共仓库、依赖包来自多个上游、构建由 CI 流水线自动触发、镜像被推送到私有 Registry、再由 Kubernetes 从 Registry 拉取并调度到某个节点运行。链路上的每一个环节都可能成为攻击面或故障源,这就是云原生供应链要解决的问题域。

本课程讨论的“云原生供应链”,指的是从源代码、依赖、构建、镜像、制品仓库,一直到运行时工作负载的完整物料流转链路,以及这条链路上所有参与方、工具和信任关系。它不等同于传统意义上的“采购与物流供应链”,而是软件物料在云原生环境中的生产、分发与消费过程。与之紧密配合的策略治理,则是在这条链路上定义“什么可以做、什么必须被拦截、什么需要留痕”的规则体系,典型载体包括 Kubernetes 的准入控制、OPA/Gatekeeper、Kyverno、镜像签名验证(如 Cosign)以及策略即代码(Policy as Code)。

供应链治理回答“物料从哪来、是否可信、有没有被篡改”;策略治理回答“在当前集群里,什么样的物料和配置才被允许运行”。两者一个管来源与完整性,一个管准入与合规,共同构成生产环境的可信基线。

为了更直观地理解这条链路的边界与关键控制点,下面用一张信号链式的全景图展示从代码到运行时的流转,以及各环节对应的治理手段。

云原生供应链流转链路与治理控制点 源代码 Git / 分支保护 依赖与构建 SBOM / 依赖扫描 镜像制品 签名 / 漏洞扫描 制品仓库 Registry / 保留策略 准入控制 签名校验 / 策略 运行时 Pod / 工作负载 提交签名 GPG / 分支策略 SBOM 生成 Syft / Trivy 镜像签名 Cosign / Notary 可信来源 白名单 / 复制策略 策略即代码 Gatekeeper / Kyverno 运行时防护 Falco / 审计 可靠性治理关注的三类失效 来源失效:镜像被篡改、依赖投毒、仓库被替换 → 靠签名与来源校验拦截 准入失效:策略缺失或过宽,未签名镜像被放行 → 靠准入控制与策略审计收敛 运行时失效:配置漂移、权限过大、异常进程 → 靠运行时检测与持续合规巡检

从图中可以看到,供应链治理与策略治理并不是两个独立话题,而是同一条链路上“来源可信”与“准入可控”的两面。理解这一点,是后续所有实践的前提。

生产环境中的核心挑战

把这条链路放到真实生产环境,会立刻遇到几个绕不开的挑战。第一是信任边界模糊:公共镜像仓库中的基础镜像可能随时被上游更新,而团队往往直接使用 latest 标签,导致同一份 Deployment 在不同时间拉取到不同内容。第二是策略与效率的冲突:如果准入策略过严,开发迭代会被频繁阻断;过松则形同虚设。第三是可观测性不足:很多团队能说清“集群里跑了什么”,却说不清“这些镜像从哪来、经过哪些构建、是否被签名”。第四是多集群与多环境一致性:开发、预发、生产三套集群若策略不一致,就会出现“预发能过、生产被拦”或更危险的“生产放行了预发拦截的镜像”。

这些挑战最终都会落到可靠性上。可靠性治理在生产环境中的价值,不是追求“零风险”,而是让风险可发现、可拦截、可追溯、可回滚。具体来说:可发现意味着有 SBOM 和扫描报告;可拦截意味着准入策略能在镜像进入集群前拒绝不合规制品;可追溯意味着从运行中的 Pod 能反查到源码提交和构建记录;可回滚意味着当某个镜像被确认有问题时,能快速定位影响范围并切回上一个可信版本。

整体学习路径

本课程后续章节将沿着这条链路逐步展开。前期先建立概念与边界,理解供应链与策略治理各自解决什么问题;中期进入工具与实践,覆盖镜像签名与验证、SBOM 生成与消费、准入控制策略编写与测试、策略即代码的版本管理与灰度;后期聚焦生产可靠性,包括多集群策略分发、策略失效的排障、供应链事件的应急响应,以及如何用指标衡量治理效果。每一部分都会尽量给出可执行的配置片段、参数示例和判断依据,而不是停留在概念层面。

学习本课程时,建议始终带着三个问题:这条链路上有哪些对象?每个对象的可信依据是什么?如果这个依据失效,生产环境会发生什么?把这三个问题贯穿到后续每一节,会比单纯记忆工具命令更有效。

最后需要明确本课程的边界:我们讨论的是云原生环境下软件物料与运行策略的治理,不展开传统 ITIL 变更管理流程,也不深入具体漏洞的利用与修复细节。重点在于让读者能够识别链路中的关键控制点,理解每个控制点的作用与局限,并能在自己的生产环境中落地一套可运行、可维护、可演进的治理方案。