1. 课程导论与整体架构
1.1 Kyverno 简介
Kyverno 是一个为 Kubernetes 设计的云原生策略引擎,由 Nirmata 开源,现已成为 CNCF 毕业项目。它允许平台团队和安全运维人员以声明式的方式定义、验证、变更和生成 Kubernetes 资源,而无需编写 Webhook 或 Admission Controller 代码。
Kyverno 的核心能力包括:
- 验证(Validate):拒绝违反策略的资源创建或更新请求。
- 变更(Mutate):自动修改资源字段,例如注入 Sidecar、添加标签或注解。
- 生成(Generate):基于源资源自动创建关联资源,例如为每个 Namespace 生成 NetworkPolicy。
- 清理(Cleanup):根据时间或条件自动删除过期或不合规的资源。
关键特性: Kyverno 使用标准的 Kubernetes 资源清单(CRD)定义策略,无需学习 DSL 或模板语言,学习曲线低,运维友好。
1.2 Operator 模式概述
Kyverno 本身以 Operator 模式运行在 Kubernetes 集群中。Operator 是一种将领域知识编码为自动化逻辑的软件扩展,它通过监听 Kubernetes API 资源的变化,自动执行运维任务。
Kyverno Operator 的核心组件包括:
| 组件 | 角色 | 说明 |
|---|---|---|
| Admission Controller | 策略执行 | 拦截 Mutating 和 Validating Webhook 请求,实时校验和变更资源 |
| Policy Controller | 策略管理 | 监听 ClusterPolicy / Policy CRD,编译并分发策略规则 |
| Report Controller | 审计报告 | 生成 ClusterPolicyReport / PolicyReport,记录历史合规状态 |
| Background Controller | 后台扫描 | 定期扫描集群现有资源,生成审计结果,不依赖 Webhook 触发 |
Operator 模式带来的优势:
- 自动化:策略部署后自动生效,无需手动配置 Webhook。
- 自愈:控制器持续调谐,确保策略状态与期望一致。
- 可观测:通过 Metrics、Events 和 Reports 暴露运行状态。
1.3 审计与合规巡检的价值
在 Kubernetes 生产环境中,策略引擎不仅要拦截不合规的变更,还需要持续审计集群的合规状态。审计与合规巡检的价值体现在以下三个维度:
- 事后追溯:当集群出现安全事件或配置漂移时,审计日志和合规报告提供完整的变更记录和违规证据。
- 持续合规:即使 Webhook 未拦截(例如资源在策略部署前已存在),后台扫描也能发现并报告不合规资源。
- 运维决策:合规巡检结果可作为集群健康度评分、安全基线评估和资源清理的依据。
实践建议: 将 Kyverno 审计报告与 SIEM 系统(如 Elasticsearch、Splunk)集成,实现合规状态的实时告警和可视化。
1.4 课程目标与学习路径
本课程旨在帮助学员掌握 Kyverno 策略审计、Operator 控制器日志分析以及合规巡检的实战技能。课程目标如下:
| 模块 | 目标 | 产出 |
|---|---|---|
| 策略审计 | 理解 Kyverno 审计机制,掌握 PolicyReport 的生成与查询 | 能独立排查策略违规事件 |
| Operator 日志 | 分析 Kyverno 控制器日志,定位策略执行失败或性能瓶颈 | 能通过日志诊断常见问题 |
| 合规巡检 | 设计自动化合规巡检脚本,生成合规报告 | 能搭建持续合规巡检流水线 |
学习路径建议:
- 基础阶段:掌握 Kyverno 策略编写与部署(第 1-5 章)。
- 进阶阶段:深入审计报告与日志分析(第 6-15 章)。
- 实战阶段:构建合规巡检平台与自动化运维(第 16-30 章)。
1.5 Kyverno 策略审计与合规巡检架构
下图展示了 Kyverno 在 Kubernetes 集群中的核心工作流,涵盖策略执行、审计报告生成与合规巡检的完整链路。
注意: 审计报告(PolicyReport)与 Operator 日志是两种不同的数据源。审计报告记录策略合规结果,而日志记录控制器运行状态和错误信息。两者结合才能全面掌握集群合规状况。
1.6 课程核心概念对比
| 概念 | 触发方式 | 数据存储 | 主要用途 |
|---|---|---|---|
| Admission 审计 | 资源创建/更新时实时触发 | PolicyReport CRD | 实时拦截不合规变更 |
| 后台扫描审计 | 定时扫描(默认 1 小时) | ClusterPolicyReport CRD | 发现存量资源合规问题 |
| Operator 日志 | 控制器运行期间持续输出 | stdout / 日志文件 | 故障排查与性能分析 |
| 合规巡检 | 按需或定时执行 | 自定义报告 / 仪表盘 | 合规状态可视化与告警 |
通过本课程的学习,学员将能够独立搭建 Kyverno 策略审计体系,分析 Operator 控制器日志,并实现自动化合规巡检,从而提升 Kubernetes 集群的安全性和运维效率。