1. 课程导论:Kyverno 策略迁移的背景与价值、课程目标与学习路径、前置知识要求

1.1 策略迁移的时代背景

Kubernetes 生态中,策略引擎已经从“可选组件”演变为“生产级安全基座”。OPA Gatekeeper 凭借其通用策略语言 Rego 和强大的约束框架,在过去几年中占据了主导地位。然而,随着云原生安全左移、GitOps 工作流普及以及平台工程对开发者体验的极致追求,Gatekeeper 的局限性逐渐显现:Rego 学习曲线陡峭、模板与约束分离导致运维复杂度高、调试困难。

Kyverno 作为 CNCF 毕业项目,以“Kubernetes 原生策略引擎”的定位迅速崛起。其核心优势在于:策略即 Kubernetes 资源(YAML 定义)、无需学习专用语言、支持 mutate/validate/generate 三种动作、原生集成镜像验证与 Pod 安全标准。据 CNCF 2024 年度调查,Kyverno 在生产环境中的采用率已超过 Gatekeeper,成为策略引擎的首选。

迁移驱动力总结: 降低策略编写门槛、减少运维心智负担、提升策略执行效率、统一策略管理平面。

1.2 迁移的核心挑战

从 Gatekeeper 迁移到 Kyverno 并非简单的“语法翻译”,而是策略范式的转换。下表对比了两者在关键维度上的差异:

对比维度 OPA Gatekeeper Kyverno
策略定义语言 Rego(声明式查询语言) YAML(Kubernetes 原生资源)
策略结构 ConstraintTemplate + Constraint 分离 ClusterPolicy / Policy 单一资源
动作类型 validate(默认),mutate 需额外开发 validate / mutate / generate 原生支持
上下文变量 data.inventory 查询集群状态 context 变量 + API 调用原生集成
调试方式 Rego 单元测试 + 日志 dry-run 模式 + 策略报告 + 可视化
社区生态 策略库分散,质量参差 官方策略库(~200+ 策略),持续更新
迁移误区警示: 不要试图将 Rego 逻辑逐行“翻译”为 Kyverno YAML。正确的做法是:理解 Gatekeeper 策略的意图,然后使用 Kyverno 的原生能力重新实现。本课程将贯穿这一核心理念。

1.3 课程目标与学习路径

本课程旨在培养学员具备以下能力:

  • 策略迁移能力: 能够将现有 Gatekeeper 策略(包括 ConstraintTemplate 和 Constraint)系统性地迁移到 Kyverno ClusterPolicy。
  • 模板生成能力: 掌握 Kyverno 策略模板的编写规范,能够根据业务需求快速生成可复用的策略模板。
  • 核验联动能力: 建立迁移后的策略核验机制,确保迁移前后策略行为一致,并实现策略模板与核验工具的自动化联动。
  • 双栈运维能力: 在迁移过渡期,能够同时管理 Gatekeeper 和 Kyverno 双栈环境,确保业务不中断。

课程学习路径分为四个阶段:

  1. 基础夯实(第 1-5 章): 理解迁移背景、Kyverno 核心概念、策略结构、匹配规则与动作类型。
  2. 迁移实战(第 6-15 章): 从简单 validate 策略到复杂 mutate/generate 策略,逐类完成 Gatekeeper 到 Kyverno 的迁移。
  3. 模板工程(第 16-22 章): 策略模板化设计、参数化、版本管理、CI/CD 集成。
  4. 核验与联动(第 23-30 章): 策略行为核验、自动化测试、策略报告、审计日志、双栈运维。
课程学习路径四阶段 阶段一 基础夯实 第1-5章 阶段二 迁移实战 第6-15章 阶段三 模板工程 第16-22章 阶段四 核验联动 第23-30章 课程交付物 • 30+ 个 Gatekeeper → Kyverno 迁移案例(含原始 Rego 与目标 YAML) • 策略模板生成器脚手架 + 核验自动化脚本 • 双栈运维检查清单与迁移回滚方案

1.4 前置知识要求

为确保学习效果,学员应具备以下基础:

Kubernetes 基础

  • 熟悉 Kubernetes 核心资源:Pod、Deployment、Service、Namespace、RBAC。
  • 理解 Admission Controller 机制(MutatingWebhookConfiguration / ValidatingWebhookConfiguration)。
  • 能够使用 kubectl 进行资源操作,理解 YAML 清单结构。
  • 了解 Pod Security Standards(Privileged / Baseline / Restricted)。

OPA Gatekeeper 基础

  • 理解 Gatekeeper 的架构:OPA 引擎 + Gatekeeper 控制器 + Webhook。
  • 能够编写简单的 Rego 策略(至少包含 deny 规则和 violation 消息)。
  • 熟悉 ConstraintTemplate 和 Constraint 的创建与部署流程。
  • 了解 Gatekeeper 的约束框架(repetition、match、parameters)。
学习建议: 如果对 Gatekeeper 尚不熟悉,建议先完成 OPA Gatekeeper 官方入门教程(约 2 小时),再进入本课程。课程第 2 章会提供 Gatekeeper 策略的快速回顾,但不会从头教授 Rego 语法。

1.5 课程环境与工具链

本课程所有实验均在以下环境中验证:

组件 版本要求 说明
Kubernetes 集群 v1.28+ 支持 ValidatingAdmissionPolicy 特性(可选)
Kyverno v1.12+ 推荐使用 Helm 安装,启用策略报告
OPA Gatekeeper v3.16+ 用于迁移源环境搭建
kubectl v1.28+ 与集群版本匹配
kyverno CLI v1.12+ 用于本地策略测试与验证

课程提供的示例代码仓库包含:

  • gatekeeper-policies/ — 原始 Gatekeeper 策略集合(含 ConstraintTemplate 和 Constraint)
  • kyverno-policies/ — 迁移后的 Kyverno ClusterPolicy 集合
  • templates/ — 策略模板生成器(Python + Jinja2)
  • tests/ — 核验脚本(基于 kyverno CLI 和 pytest)
# 克隆课程仓库
git clone https://github.com/example/kyverno-migration-course.git
cd kyverno-migration-course

# 查看目录结构
tree -L 2

1.6 本章小结

本章明确了 Kyverno 策略迁移的时代必然性、核心挑战以及本课程的系统化学习路径。学员应已了解:

  • Gatekeeper 到 Kyverno 迁移的驱动力与价值
  • 两者在策略定义、结构、动作类型上的关键差异
  • 课程四阶段学习路径与交付物
  • 前置知识要求与环境准备