1. Gatekeeper 概述
1.1 什么是 Gatekeeper
Gatekeeper 是 Kubernetes 生态中原生集成的策略控制器,它基于 Open Policy Agent (OPA) 的 Rego 策略语言,为集群提供声明式、可审计、可扩展的准入控制能力。当用户向 API Server 提交资源(Pod、Service、Deployment 等)时,Gatekeeper 会在准入阶段拦截请求,根据预定义的策略规则进行校验,只有通过校验的资源才能被持久化到 etcd 中。
核心定位:Gatekeeper 是 OPA 在 Kubernetes 场景下的官方集成实现,它将 OPA 的策略引擎以 Admission Webhook 的形式嵌入集群,同时通过 CRD(Custom Resource Definition)暴露策略管理接口,使运维人员无需编写 Webhook 代码即可完成策略治理。
1.2 Gatekeeper 的核心价值
Gatekeeper 在云原生安全与合规领域具有不可替代的地位,其核心价值体现在以下四个维度:
| 价值维度 | 说明 | 典型场景 |
|---|---|---|
| 策略即代码 | 使用 Rego 语言将安全、合规、运维规则编写为可版本管理的代码 | 禁止特权容器、强制资源限制、限制网络策略 |
| 原生集成 | 以 Kubernetes Admission Webhook 方式运行,无需修改 API Server 配置 | 集群创建时自动注入,兼容托管集群(EKS、AKS、GKE) |
| 声明式管理 | 通过 CRD(ConstraintTemplate、Constraint)定义策略,GitOps 友好 | 策略随集群配置一起纳入 CI/CD 流水线 |
| 审计与干预防护 | 支持实时准入拦截 + 定期审计扫描,发现存量违规资源 | 合规巡检、安全基线检查、多租户隔离 |
性能提示:Gatekeeper 的冷启动阶段(首次部署或大规模策略变更后)会经历 Rego 编译缓存预热、Webhook 证书签发、CRD 同步等过程,这是本课程后续章节重点优化的方向。
1.3 Gatekeeper 与 OPA 的关系
理解 Gatekeeper 与 OPA 的关系是掌握策略治理体系的前提。OPA 是一个通用的策略引擎,而 Gatekeeper 是 OPA 在 Kubernetes 环境中的专用适配层。两者并非竞争关系,而是引擎与集成层的关系。
一句话总结:OPA 提供策略执行引擎,Gatekeeper 提供 Kubernetes 原生策略管理框架。
下表从多个维度对比两者的定位差异:
| 对比维度 | OPA | Gatekeeper |
|---|---|---|
| 定位 | 通用策略引擎(可集成到任何系统) | Kubernetes 专用策略控制器 |
| 部署方式 | 独立服务 / Sidecar / 库嵌入 | Admission Webhook + CRD 控制器 |
| 策略语言 | Rego | Rego(通过 ConstraintTemplate 封装) |
| 管理接口 | REST API / Go SDK | kubectl + CRD(Constraint / ConstraintTemplate) |
| 审计能力 | 需自行实现审计逻辑 | 内置审计扫描 + 违规报告 |
| 适用场景 | 微服务授权、数据过滤、CI/CD 策略 | Kubernetes 准入控制、安全基线、合规治理 |
下图展示了 Gatekeeper 与 OPA 在 Kubernetes 集群中的协作架构:
1.4 策略执行流程
Gatekeeper 的完整策略执行流程分为以下五个步骤:
- 策略定义:运维人员通过
ConstraintTemplate编写 Rego 规则模板,再通过Constraint实例化具体策略参数(如允许的镜像仓库列表、最大资源限制值)。 - 请求拦截:用户通过 kubectl 或客户端提交资源创建/更新请求到 API Server,API Server 根据配置将请求转发给 Gatekeeper Admission Webhook。
- 策略评估:Gatekeeper 将请求对象和集群上下文传递给 OPA 引擎,OPA 加载已编译的 Rego 策略并执行评估,返回
allow或deny结果及违规消息。 - 准入决策:Gatekeeper 根据 OPA 返回的结果构造 AdmissionReview 响应,允许通过或拒绝请求并附带原因。
- 审计扫描:Gatekeeper 控制器定期扫描集群中所有已存在的资源,与当前策略进行比对,生成审计结果并更新 Constraint 的状态字段。
冷启动注意:在 Gatekeeper 首次部署或大规模策略变更后,OPA 引擎需要重新编译所有 Rego 策略并构建缓存。此阶段如果并发请求量较大,可能导致 Webhook 响应超时(默认 30 秒),进而影响集群正常资源创建。本课程第 4-6 章将专门讲解冷启动优化策略。
1.5 本章小结
Gatekeeper 作为 Kubernetes 生态中策略治理的事实标准,通过将 OPA 的策略引擎能力以原生 CRD 和 Webhook 方式集成,实现了策略即代码、声明式管理、实时准入与审计扫描四大核心能力。理解 Gatekeeper 与 OPA 的协作关系,是后续进行冷启动环境配置与性能测试的基础。