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 管道中离线测试策略。
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 等合规框架对配置管理的审计要求。
- 故障预防:在资源创建阶段拦截错误配置,避免运行时故障。
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 的基本概念。每章都配有可运行的策略示例,建议在测试集群中动手实践。
本课程采用理论 + 实操 + 案例三位一体的教学方式。每章包含:
- 知识讲解:核心概念与原理,配合架构图和表格。
- 策略示例:可直接复用的 Kyverno 策略 YAML 代码。
- 验证步骤:使用 kubectl 和 Kyverno CLI 验证策略效果。
- 避坑指南:常见错误与最佳实践。
通过本课程的系统学习,你将能够构建一套完整的 CRD 合规保护体系,将 Kyverno 无缝集成到企业的云原生安全栈中。