Kyverno:用 YAML 管 Kubernetes 策略,不用学新语言

管理 Kubernetes 集群,安全策略是个绕不开的话题。以前写策略得学 Rego、Cue 这些专用语言,光语法就得折腾半天。Kyverno 换了个思路:直接用 YAML 写策略,Kubernetes 原生语法,不用学新东西。

正文顶部截图

Kyverno 是 CNCF 的孵化项目,Star 数 7858,专门给平台工程团队设计。它的工作方式是通过 Kubernetes 的准入控制,在资源创建的时候就拦住不合规的配置,或者自动修补。后台还会定期扫描已有资源,确保集群一直保持合规状态。

能干什么

Kyverno 的能力覆盖四个方向:

校验资源:比如规定所有 Pod 必须设置资源限制、只能用特定镜像仓库的镜像、必须配置健康检查。不符合策略的直接拒绝创建。

修改资源:新创建的 Namespace 没配 NetworkPolicy?Kyverno 自动生成一个默认的。Pod 没打标签?自动补上。这类重复性的运维工作,一条策略搞定。

生成资源:根据模板自动创建关联资源。新建一个 Namespace 时,自动创建对应的 RBAC 规则、ResourceQuota,不用再手动写脚本。

清理资源:定期扫描,把过期的、不合规的资源标记出来或者直接删掉。

除了这四个,还有一个实用功能是验证容器镜像签名。供应链安全越来越重要,Kyverno 能检查镜像是不是从可信的构建流程出来的,有没有被篡改过。

适合什么场景

官方列了四类常见场景:

安全合规方面,可以强制执行 Pod Security Standards、CIS Benchmark,校验镜像来源和签名。运维层面,自动打标签、强制命名规范、生成默认配置。成本控制方面,强制资源配额和限制、要求成本分配标签。开发体验方面,强制要求健康检查、自动注入 ConfigMap 或 Secret。

这些场景看着都很基础,但真要一个个手动管,运维团队得累死。用策略自动化之后,规范就能落地,不会因为有人忘了就漏掉。

README区域截图

和其他方案的区别

Kyverno 不是唯一的选择。OPA/Gatekeeper 也能做策略管理,但得学 Rego 语言。ValidatingAdmissionPolicy 是 Kubernetes 原生的,但功能比较有限。

Kyverno 的优势在于上手快。YAML 是 Kubernetes 用户每天都在写的东西,不用额外学习。策略写法和 Kubernetes 资源定义风格一致,看一眼就知道怎么写。而且它不替代 RBAC,是和 RBAC 配合工作的。RBAC 管谁能访问什么,Kyverno 管资源应该长什么样,各管各的。

官方有一个策略库,几百条现成的策略可以直接用。安全、运维、成本控制、开发规范都有覆盖。不想从头写的,直接拿过来改改参数就能上。

生态配套

Kyverno 主引擎之外,还有几个配套项目。Chainsaw 是端到端测试工具,用来验证策略写得对不对。Policy Reporter 做策略违规的报告和 UI 展示。Kyverno JSON 可以对非 Kubernetes 的 JSON 数据做策略评估。Kyverno Envoy Plugin 给服务网格提供授权策略。

这几个项目独立维护,按需选用就行。

怎么用

安装走 Helm,文档在 kyverno.io。如果你的团队已经在用 Kubernetes,又想把安全和合规这块管起来,Kyverno 是个值得试试的方案。不用学新语言,策略写起来快,社区活跃,文档也齐全。

这块管起来,Kyverno 是个值得试试的方案。不用学新语言,策略写起来快,社区活跃,文档也齐全。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐