1. 课程导论

1.1 传统资源配额管理的“七宗罪”

在云原生环境中,资源配额(Resource Quota)是保障多租户稳定性与公平性的第一道防线。然而,大多数团队仍在使用“手动配置 + 事后告警”的粗放模式,导致以下系统性痛点:

痛点 典型表现 后果
配置碎片化 YAML 散落在不同仓库、不同 Namespace,缺乏统一视图 审计困难,违规配置难以追溯
变更不可控 运维人员直接编辑 ConfigMap 或通过 Dashboard 修改 无审批流,误操作导致生产故障
策略与实现耦合 配额逻辑硬编码在 Operator 或 Admission Webhook 中 升级困难,策略复用率为零
缺乏分层抽象 集群级、租户级、应用级配额混为一谈 资源争抢时无法精准限流
合规审计缺失 配额变更无版本记录,无法回答“谁在何时改了什么” 无法通过 SOC2/ISO 27001 审计
反馈周期长 配额超限后仅靠 Prometheus 告警,开发者感知滞后 业务受损后才被动扩容
环境不一致 开发/测试/生产环境的配额规则各自维护 “在我机器上能跑”现象蔓延
核心矛盾: 云原生基础设施的弹性与动态性,与传统“静态配置 + 人工干预”的配额管理模式之间存在根本性错配。

1.2 策略即代码(Policy as Code)的破局思路

策略即代码将配额规则从“静态文档”和“人工操作”中解放出来,转化为版本化、可测试、可自动执行的代码资产。其核心价值体现在三个维度:

  • 声明式定义: 使用 DSL(如 Rego、CEL)描述“配额应该是什么”,而非“如何执行配额”。
  • 自动化执行: 通过 Admission Controller、GitOps 流水线或策略引擎,在资源创建/更新时实时拦截与校验。
  • 可观测与审计: 每次策略评估都产生结构化日志,支持全链路追溯与合规报告。
关键认知: 策略即代码不是简单的“把 YAML 放到 Git 里”,而是建立一套从策略定义 → 策略分发 → 策略评估 → 策略审计的完整生命周期管理体系。

1.3 架构视角的价值:从“点状解决”到“分层设计”

大多数团队在引入策略即代码时,容易陷入“工具导向”的误区——直接选用 OPA/Gatekeeper 或 Kyverno,却忽略了顶层架构设计。这导致策略库迅速膨胀、规则冲突、评估性能下降。

架构视角要求我们回答三个关键问题:

  1. 分层: 配额策略应该在哪几层定义?(集群层、租户层、应用层、运行时层)
  2. 抽象: 如何将业务需求(如“核心业务优先保障”)转化为可执行的策略规则?
  3. 治理: 策略的版本、发布、回滚、灰度机制如何与现有 CI/CD 体系融合?

下图展示了传统配额管理与策略即代码分层架构的本质区别:

传统配额管理 vs 策略即代码分层架构 传统模式:扁平化 + 人工 手动编辑 YAML / ConfigMap kubectl apply / 直接修改 无版本控制 / 无审批 事后告警 + 人工介入 策略即代码:分层 + 自动化 集群层:全局配额策略 租户层:Namespace 配额模板 应用层:Workload 资源限制 运行时层:动态准入控制 审计层:全链路可追溯

1.4 本课程的核心交付

本课程将围绕“分层设计”这一架构主线,系统性地交付以下能力:

模块 核心内容 产出物
策略模型设计 四层配额抽象模型(集群/租户/应用/运行时) 分层策略模板 + 属性映射表
策略引擎选型 OPA/Gatekeeper vs Kyverno vs CEL 对比 选型决策矩阵
策略即代码流水线 GitOps + CI 策略测试 + 灰度发布 可运行的 Pipeline 配置
合规与审计 策略变更追溯 + 违规事件聚合 审计 Dashboard 设计
生产化实践 性能优化、故障排查、多集群策略同步 运维手册 + 故障树
前置提醒: 本课程不讨论“如何安装 OPA/Gatekeeper”这类工具级操作,而是聚焦于架构决策与模型设计。工具只是策略即代码的载体,分层模型才是长期可演进的基石。

1.5 谁应该学习本章节?

  • 云原生架构师: 需要设计多租户资源隔离体系,保障 SLA。
  • 平台工程团队: 正在建设内部开发者平台(IDP),需要将配额策略作为平台能力之一。
  • 安全与合规工程师: 负责云原生环境下的策略治理与审计。
  • 高级 SRE: 希望从“被动救火”转向“主动策略防御”。