1. 课程导论:策略即代码理念、Kyverno简介、回滚防护的重要性、课程目标与前置知识

1.1 策略即代码:从人工审核到自动化治理

在传统运维与安全模型中,策略通常以文档、Wiki 或邮件形式存在,依赖人工在变更流程中逐条核对。这种方式在微服务与 Kubernetes 环境下暴露出明显短板:效率低、易遗漏、无法强制实施。

策略即代码(Policy as Code, PaC) 将安全、合规与运维规则以声明式代码的形式编写、版本化管理,并在 CI/CD 流水线或集群准入阶段自动执行。其核心价值包括:

  • 可版本化:策略与代码一同存储在 Git 仓库,支持变更追溯与回滚。
  • 可测试:策略可编写单元测试,确保规则逻辑正确。
  • 可自动化:策略在资源创建、更新时自动触发,无需人工干预。
  • 可审计:每次策略评估结果均可记录,满足合规审计要求。
关键转变: 从“人找策略”变为“策略找人”,从“事后检查”变为“事前预防”。
策略即代码核心理念 策略即代码 可版本化 可测试 可自动化 可审计 策略以代码形式编写 → 存入 Git → 自动执行 → 全程可追溯 实现安全与合规的“左移”

1.2 Kyverno简介:Kubernetes原生的策略引擎

Kyverno 是一个专为 Kubernetes 设计的策略引擎,由 Nirmata 开源,现为 CNCF 毕业项目。与 OPA/Gatekeeper 不同,Kyverno 使用 Kubernetes 自定义资源(CRD)定义策略,无需学习专用查询语言(如 Rego)。

特性 Kyverno OPA/Gatekeeper
策略语言 YAML(Kubernetes原生) Rego(专用语言)
安装复杂度 低(Helm / YAML 一键部署) 中(需部署 Gatekeeper 组件)
策略类型 Validate / Mutate / Generate Validate / Mutate
集群内集成 原生 CRD,kubectl 直接管理 需额外 CRD 与模板
学习曲线 低(熟悉 K8s 即可上手) 中高(需学习 Rego)

Kyverno 支持三种核心策略动作:

  • Validate:验证资源是否符合规则,拒绝不合规资源。
  • Mutate:在资源创建或更新时自动修改其配置。
  • Generate:基于规则自动生成新资源(如 Namespace 自动创建 NetworkPolicy)。
为什么选择 Kyverno? 对于已有 Kubernetes 基础的团队,Kyverno 的策略编写成本极低,且原生支持 GitOps 与 CI/CD 集成,非常适合作为回滚防护的自动化引擎。

1.3 回滚防护的重要性

在云原生环境中,回滚 是应对发布故障的标准操作。然而,无防护的回滚 可能引入更严重的问题:

  • 回滚到不安全版本:回滚目标版本可能存在已知漏洞(CVE)。
  • 回滚破坏配置一致性:回滚后的资源与当前集群的 NetworkPolicy、RBAC 等配置不兼容。
  • 回滚绕过合规检查:回滚操作可能跳过生产环境的准入控制,导致不合规资源上线。
  • 回滚引发级联故障:回滚一个服务可能影响依赖该服务的其他组件。

回滚防护 是指在回滚操作执行前,自动验证回滚目标版本的安全性、合规性与兼容性,确保回滚不会引入新的风险。Kyverno 可以在回滚发生时,作为准入控制器拦截并评估回滚请求。

回滚防护:有防护 vs 无防护 无防护回滚 触发回滚命令 直接执行回滚 可能引入安全漏洞 或配置不一致 有防护回滚(Kyverno) 触发回滚命令 Kyverno 准入检查 通过 → 安全回滚

1.4 课程目标与前置知识

本课程旨在帮助学员掌握使用 Kyverno 实现回滚防护与流水线集成的完整技能。完成本课程后,你将能够:

模块 学习目标
策略编写 独立编写 Validate / Mutate / Generate 策略,覆盖回滚场景
回滚防护 设计并部署回滚版本安全校验、配置一致性校验策略
流水线集成 将 Kyverno 策略集成到 Jenkins / GitLab CI / GitHub Actions 中
故障排查 通过日志、策略报告与事件快速定位策略执行问题
生产实践 掌握策略版本管理、灰度发布与多集群策略同步

前置知识要求:

  • 熟悉 Kubernetes 基本概念(Pod、Deployment、Service、Namespace)。
  • 能够使用 kubectl 管理集群资源。
  • 了解 CI/CD 流水线基本流程(构建、测试、部署)。
  • 具备 YAML 编写基础。
注意: 本课程不要求学员具备 Rego 或 OPA 经验。Kyverno 的策略全部使用 Kubernetes 原生 YAML 编写,降低学习门槛。

1.5 课程内容概览

本课程共分为 30 章,涵盖从基础到高级的完整知识体系:

阶段 章节范围 核心内容
基础篇 第 1-8 章 Kyverno 安装、策略语法、Validate/Mutate/Generate 基础
回滚防护篇 第 9-16 章 回滚场景分析、安全校验策略、配置一致性策略、策略测试
流水线集成篇 第 17-24 章 Jenkins / GitLab CI / GitHub Actions 集成、策略报告、失败处理
进阶实践篇 第 25-30 章 多集群策略管理、策略性能优化、生产级故障排查