通过配置内置准入控制器实施 Pod 安全标准

在 v1.22 版本中,Kubernetes 提供一种内置的准入控制器 用来强制实施 Pod 安全标准。 你可以配置此准入控制器来设置集群范围的默认值和豁免选项

准备开始

你的 Kubernetes 服务器版本必须不低于版本 v1.22. 要获知版本信息,请输入 kubectl version.

配置准入控制器

  1. apiVersion: apiserver.config.k8s.io/v1
  2. kind: AdmissionConfiguration
  3. plugins:
  4. - name: PodSecurity
  5. configuration:
  6. apiVersion: pod-security.admission.config.k8s.io/v1
  7. kind: PodSecurityConfiguration
  8. # 当未设置 mode 标签时会应用的默认设置
  9. #
  10. # level 标签必须是以下取值之一:
  11. # - "privileged" (默认)
  12. # - "baseline"
  13. # - "restricted"
  14. #
  15. # version 标签必须是如下取值之一:
  16. # - "latest" (默认)
  17. # - 诸如 "v1.25" 这类版本号
  18. defaults:
  19. enforce: "privileged"
  20. enforce-version: "latest"
  21. audit: "privileged"
  22. audit-version: "latest"
  23. warn: "privileged"
  24. warn-version: "latest"
  25. exemptions:
  26. # 要豁免的已认证用户名列表
  27. usernames: []
  28. # 要豁免的运行时类名称列表
  29. runtimeClasses: []
  30. # 要豁免的名字空间列表
  31. namespaces: []

说明:

pod-security.admission.config.k8s.io/v1 配置需要 v1.25+。 对于 v1.23 和 v1.24,使用 v1beta1。 对于 v1.22,使用 v1alpha1。 v1beta1 配置结构需要使用 v1.23+ 版本;对于 v1.22 版本,可使用 v1alpha1。