1. 课程导论:准入控制与策略即代码资源配额模型集成架构解析

1.1 准入控制:Kubernetes API 请求的守门人

在 Kubernetes 集群中,准入控制(Admission Control) 是 API Server 处理请求流程中的关键拦截层。任何对集群资源进行创建、更新或删除的请求,在通过身份认证(Authentication)和授权(Authorization)之后,都会进入准入控制阶段。这一机制确保了只有符合集群策略的请求才能被持久化到 etcd 中。

核心要点: 准入控制器是插件化的,Kubernetes 内置了 30+ 个准入控制器(如 NamespaceLifecycle、LimitRanger、ResourceQuota、PodSecurity 等),同时支持通过 Webhook 机制扩展自定义的准入控制逻辑。

准入控制分为两个阶段:

  • Mutating(变更阶段): 允许修改请求对象,例如自动注入 Sidecar 容器、设置默认资源限制。
  • Validating(验证阶段): 仅检查请求是否满足约束条件,不修改对象内容。

下图展示了 Kubernetes API 请求的完整处理流程,其中准入控制位于认证与授权之后、持久化存储之前:

Kubernetes API 请求处理流程 客户端请求 认证 (AuthN) 授权 (AuthZ) 准入控制 (Mutating + Validating) etcd 持久化 请求被拒绝

1.2 策略即代码:从静态配置到声明式治理

策略即代码(Policy as Code, PaC) 是一种将组织策略以机器可读、可版本控制、可自动化执行的代码形式进行管理的实践。在云原生环境中,PaC 将安全基线、合规要求、资源治理规则从运维人员的头脑或文档中,转化为可编程的约束引擎。

维度 传统策略管理 策略即代码 (PaC)
表达方式 自然语言文档、Wiki、审批流程 声明式 DSL(如 Rego、CEL)、YAML/JSON 配置
版本控制 难以追踪变更历史 Git 原生管理,支持 Code Review
执行时机 人工审计、事后检查 准入控制阶段实时拦截,事前预防
测试能力 依赖人工验证 单元测试、集成测试、CI 流水线验证
典型工具 手工脚本、堡垒机 OPA/Gatekeeper、Kyverno、jsPolicy
关键洞察: 策略即代码的核心价值在于将“策略”从静态文档转变为可执行的代码资产。在 Kubernetes 中,PaC 引擎通常以准入 Webhook 的形式运行,在 ValidatingAdmissionWebhook 或 MutatingAdmissionWebhook 中拦截并评估请求。

1.3 资源配额模型在云原生中的重要性

资源配额(Resource Quota) 是 Kubernetes 内置的准入控制机制,用于限制命名空间级别的资源消耗总量。然而,原生 ResourceQuota 对象存在明显的局限性:

  • 仅支持命名空间级别的聚合限制,无法实现跨命名空间的全局配额。
  • 不支持复杂的配额分配策略,如基于优先级、基于标签的动态分配。
  • 缺乏配额变更的审计与通知机制。

因此,业界开始构建资源配额模型(Resource Quota Model),将配额管理从简单的数值限制升级为包含配额定义、分配策略、使用计量、超限处理、审计报告的完整治理体系。下图展示了资源配额模型在云原生平台中的核心位置:

资源配额模型在云原生治理中的位置 策略定义层 配额模板 / 配额策略 / 分配规则 (Rego/CEL/YAML) 执行引擎层 准入控制器 / OPA Gatekeeper / Kyverno / 自定义 Webhook 资源与计量层 Kubernetes ResourceQuota / Metrics Server / 自定义计量器 合规的资源分配 超限拒绝与告警
常见误区: 不要将资源配额模型等同于 Kubernetes 原生的 ResourceQuota 对象。原生 ResourceQuota 只是配额模型中的一个“计量与限制”组件,完整的配额模型还需要策略定义、动态分配、审计追溯等能力,这正是本课程要深入讲解的集成架构。

1.4 本课程的学习目标

完成本课程后,学员将能够:

  1. 理解核心概念: 掌握准入控制、策略即代码、资源配额模型的基本原理与相互关系。
  2. 掌握集成架构: 能够设计将 OPA/Gatekeeper、Kyverno 等 PaC 引擎与资源配额模型集成的系统架构。
  3. 实现策略编写: 使用 Rego、CEL 等策略语言编写资源配额相关的准入控制策略。
  4. 构建计量与审计: 设计资源使用量的实时计量、配额预警与合规审计方案。
  5. 落地生产实践: 掌握多租户场景下的配额分配、动态调整与故障排查方法。

1.5 适用人群

角色 学习收益 前置知识要求
平台工程师 / SRE 构建多租户资源隔离与配额治理体系 Kubernetes 基础操作、YAML 编写
安全工程师 将安全基线转化为可执行的准入策略 了解 Kubernetes RBAC 与网络策略
云原生架构师 设计企业级策略即代码平台架构 熟悉微服务架构与容器编排
DevOps 工程师 在 CI/CD 流水线中集成策略验证 了解 GitOps 与持续部署流程
学习建议: 本课程包含大量动手实验环节。建议学员提前准备一个 Kubernetes 集群(版本 1.24+),并安装 Helm 和 kubectl 命令行工具。课程中涉及的所有策略代码和配置文件均可在配套代码仓库中找到。