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 集群中的协作架构:

Gatekeeper 与 OPA 协作架构图 Gatekeeper 与 OPA 协作架构 kubectl / 客户端 Kubernetes API Server Gatekeeper Admission Webhook OPA 策略引擎 Rego 编译 + 评估 CRD 策略存储 ConstraintTemplate / Constraint etcd 集群 说明:Gatekeeper 作为 Admission Webhook 拦截 API Server 请求,调用 OPA 引擎执行 Rego 策略评估, 策略定义通过 CRD 持久化在 etcd 中,支持实时准入与定期审计两种模式。

1.4 策略执行流程

Gatekeeper 的完整策略执行流程分为以下五个步骤:

  1. 策略定义:运维人员通过 ConstraintTemplate 编写 Rego 规则模板,再通过 Constraint 实例化具体策略参数(如允许的镜像仓库列表、最大资源限制值)。
  2. 请求拦截:用户通过 kubectl 或客户端提交资源创建/更新请求到 API Server,API Server 根据配置将请求转发给 Gatekeeper Admission Webhook。
  3. 策略评估:Gatekeeper 将请求对象和集群上下文传递给 OPA 引擎,OPA 加载已编译的 Rego 策略并执行评估,返回 allow 或 deny 结果及违规消息。
  4. 准入决策:Gatekeeper 根据 OPA 返回的结果构造 AdmissionReview 响应,允许通过或拒绝请求并附带原因。
  5. 审计扫描:Gatekeeper 控制器定期扫描集群中所有已存在的资源,与当前策略进行比对,生成审计结果并更新 Constraint 的状态字段。
冷启动注意:在 Gatekeeper 首次部署或大规模策略变更后,OPA 引擎需要重新编译所有 Rego 策略并构建缓存。此阶段如果并发请求量较大,可能导致 Webhook 响应超时(默认 30 秒),进而影响集群正常资源创建。本课程第 4-6 章将专门讲解冷启动优化策略。

1.5 本章小结

Gatekeeper 作为 Kubernetes 生态中策略治理的事实标准,通过将 OPA 的策略引擎能力以原生 CRD 和 Webhook 方式集成,实现了策略即代码、声明式管理、实时准入与审计扫描四大核心能力。理解 Gatekeeper 与 OPA 的协作关系,是后续进行冷启动环境配置与性能测试的基础。