首页/开发/CI/CD 与发布速查/Kyverno 策略引擎
环境与配置管理60 条

Kyverno 策略引擎

Kubernetes 原生策略工具:策略用 YAML 表达,支持校验(validate)、变更(mutate)、生成(generate)与清理,输出策略报告。

CI/CD 与发布速查开发更新于 2026-10-13

Kyverno 是什么

Kubernetes 原生策略引擎:策略用 YAML 表达,不要求学习 Rego,支持校验(validate)、变更(mutate)、生成(generate)与镜像验证,并输出 PolicyReport 汇总资源合规状态。作为准入 webhook 在资源写入时拦截或改写,也能对存量资源做后台扫描生成报告。Audit 起步、Enforce 收敛是常见的落地节奏。

基本信息

能力validate、mutate、generate、verifyImages 等规则类型
报告PolicyReport 汇总资源合规状态,可对接仪表盘
适用不引入 Rego 的团队,YAML 上手成本低
模式Audit 只记录,Enforce 直接拦截
位置准入 webhook 与后台扫描两路互补

典型使用场景

  • 标签强制:新资源必须带指定标签,缺失即处理
  • 默认值注入:缺失的资源配额由 mutate 自动补齐
  • 镜像校验:只允许受信仓库与签名的镜像
  • 配套生成:新命名空间自动生成网络策略等资源
  • 存量扫描:后台模式对既有资源输出合规报告
  • 例外管理:豁免条件显式声明并可审计

样例

样例
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: disallow-latest
spec:
  validationFailureAction: Audit   # Audit 只记录;Enforce 直接拦截
  rules:
    - name: require-tag
      match:
        any:
          - resources:
              kinds: ["Pod"]
      validate:
        message: "禁止使用 latest 标签"
        pattern:
          spec:
            containers:
              - image: "!*:latest"

规则类型读法

类型作用注意
validate校验字段,按模式处置Audit 记录、Enforce 拦截
mutate写入前改写资源变更要评审并告知
generate生成配套资源注意生成范围与权限
verifyImages校验镜像签名与签名体系配套
PolicyReport合规状态汇总接入仪表盘与告警
Audit 起步、Enforce 收敛:与发布团队同步收紧排期。
策略也进 Git:用 GitOps 管策略本身,才有审计轨迹与回滚能力。
例外显式化:豁免写成策略里的条件或注解,别用口头约定。

落地补充

  • 发布前置校验:清单先过本地校验工具,问题在流水线阶段暴露
  • 引擎升级:策略引擎自身升级先核对规则兼容性再推进
策略范围收窄:能用命名空间级就不上集群级,匹配范围写清减少误伤面。
报告对接仪表盘:合规率按团队维度展示,推动责任人主动治理。

易错点

  • mutate 规则隐蔽改字段:变更要评审并告知,避免「为什么我的配置变了」
  • 策略仓库与集群不同步:用 GitOps 管策略本身,才能审计与回滚
  • Enforce 一步到位:存量工作负载被拦在发布半路,先 Audit 观察再收紧
  • 例外散落在策略外:豁免靠临时改策略不可追溯,改走显式条件

数据来源与参考

  • Kyverno 文档(kyverno.io)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌