1. 课程导论:Kyverno 是什么、为什么需要保护 CRD 合规、课程目标与学习路径

1.1 Kyverno 是什么

Kyverno 是一个为 Kubernetes 设计的云原生策略引擎,由 Nirmata 开源,目前是 CNCF 的孵化项目。它使用 Kubernetes 自身的自定义资源定义(CRD)来定义策略,无需编写 Webhook 或学习复杂的准入控制器开发语言。Kyverno 以动态准入控制 Webhook 的形式运行,在资源创建、更新或删除时拦截 API 请求,并根据预定义的策略进行验证、变更或生成操作。

核心能力:Kyverno 策略即代码(Policy-as-Code),支持 validate(验证)、mutate(变更)、generate(生成)三种主要动作,覆盖 Kubernetes 资源全生命周期合规管理。

Kyverno 的架构由以下几个关键组件构成:

  • Kyverno Admission Controller:核心组件,处理准入 Webhook 请求,执行策略评估。
  • Kyverno Cleanup Controller:负责根据策略清理过期或不合规的资源。
  • Kyverno Reports Controller:生成策略报告(PolicyReport),记录资源合规状态。
  • Kyverno CLI:命令行工具,支持在 CI/CD 管道中离线测试策略。
Kyverno 核心架构图 Kyverno 核心架构图 Kubernetes API Server Kyverno Admission Controller Validate(验证) Mutate(变更) Generate(生成) 策略即代码:无需编写 Webhook,使用 Kubernetes CRD 定义策略规则

1.2 为什么需要保护 CRD 合规

自定义资源定义(CRD)是 Kubernetes 扩展能力的基础,允许用户定义自己的资源类型。然而,CRD 的灵活性也带来了合规风险:

风险类别 具体问题 潜在影响
字段缺失 CRD 实例缺少必填字段(如 securityContext、resourceLimits) 容器以特权模式运行,资源不受限制
值越界 字段值超出合规范围(如 replicas 超过集群配额) 资源争抢、集群不稳定
命名不规范 CRD 实例名称或标签不符合企业命名标准 运维混乱、审计困难
依赖缺失 CRD 实例引用的 ConfigMap、Secret 或 Service 不存在 应用启动失败、运行时错误
版本兼容 CRD 实例使用了已弃用的 API 版本 升级后资源无法解析
关键认知:Kubernetes 原生准入控制器(如 PodSecurity、ResourceQuota)只覆盖内置资源,对 CRD 实例的合规检查几乎为零。CRD 合规保护是云原生安全体系中常被忽视的盲区。

保护 CRD 合规的核心价值体现在:

  • 安全加固:强制 CRD 实例遵循最小权限原则,防止特权容器、不安全挂载等配置。
  • 运维标准化:统一命名规范、标签体系、资源配额,降低运维复杂度。
  • 审计合规:满足 SOC 2、PCI DSS、HIPAA 等合规框架对配置管理的审计要求。
  • 故障预防:在资源创建阶段拦截错误配置,避免运行时故障。
CRD 合规风险与保护价值 CRD 合规风险与保护价值 CRD 合规风险 字段缺失 → 特权容器、无资源限制 值越界 → 资源争抢、集群不稳定 命名不规范 → 运维混乱、审计困难 依赖缺失 → 应用启动失败 版本兼容 → 升级后资源无法解析 Kyverno 保护价值 安全加固:强制最小权限原则 运维标准化:统一命名与标签 审计合规:满足 SOC 2 / PCI DSS 故障预防:拦截错误配置 版本管控:强制使用稳定 API 版本

1.3 课程目标与学习路径

本课程旨在帮助学员掌握使用 Kyverno 对 Kubernetes CRD 进行准入控制合规保护的全流程技能。课程结束后,学员将能够:

  • 理解 Kyverno 策略模型:掌握 validate、mutate、generate 三种策略类型及其适用场景。
  • 编写 CRD 合规策略:针对自定义资源定义,编写字段验证、默认值注入、依赖检查等策略。
  • 部署与测试策略:使用 Kyverno CLI 和 Helm 在集群中部署策略,并通过 PolicyReport 监控合规状态。
  • 构建企业级合规体系:结合 GitOps 和 CI/CD 管道,实现策略的版本化管理和自动化审计。
模块 章节范围 核心内容
基础篇 第 1-5 章 Kyverno 安装、策略语法、CRD 基础、准入控制原理
策略实战篇 第 6-15 章 字段验证、变更注入、生成策略、依赖检查、命名规范
高级篇 第 16-22 章 策略编排、异常处理、性能调优、多集群策略管理
企业落地篇 第 23-30 章 GitOps 集成、CI/CD 管道、审计报告、合规仪表盘
学习建议:建议学员具备 Kubernetes 基础操作经验(kubectl、YAML 编写),了解 CRD 的基本概念。每章都配有可运行的策略示例,建议在测试集群中动手实践。

本课程采用理论 + 实操 + 案例三位一体的教学方式。每章包含:

  1. 知识讲解:核心概念与原理,配合架构图和表格。
  2. 策略示例:可直接复用的 Kyverno 策略 YAML 代码。
  3. 验证步骤:使用 kubectl 和 Kyverno CLI 验证策略效果。
  4. 避坑指南:常见错误与最佳实践。

通过本课程的系统学习,你将能够构建一套完整的 CRD 合规保护体系,将 Kyverno 无缝集成到企业的云原生安全栈中。