Kubernetes 提供一种内置的准入控制器 用来强制实施 Pod 安全性标准。你可以配置此准入控制器来设置集群范围的默认值和豁免选项。
Pod 安全性准入(Pod Security Admission)在 Kubernetes v1.22 作为 Alpha 特性发布,在 Kubernetes v1.23 中作为 Beta 特性默认可用。从 1.25 版本起,此特性进阶至正式发布(Generally Available)。
要获知版本信息,请输入 kubectl version.
如果未运行 Kubernetes 1.35,你可以切换到与当前运行的 Kubernetes 版本所对应的文档。
pod-security.admission.config.k8s.io/v1 配置需要 v1.25+。对于 v1.23 和 v1.24,使用v1beta1。对于 v1.22,使用v1alpha1。
apiVersion: apiserver.config.k8s.io/v1
kind: AdmissionConfiguration
plugins:
- name: PodSecurity
configuration:
apiVersion: pod-security.admission.config.k8s.io/v1
kind: PodSecurityConfiguration
# 当未设置 mode 标签时会应用的默认设置
#
# level 标签必须是以下取值之一:
# - "privileged" (默认)
# - "baseline"
# - "restricted"
#
# version 标签必须是如下取值之一:
# - "latest" (默认)
# - 诸如 "v1.35" 这类版本号
defaults:
enforce: "privileged"
enforce-version: "latest"
audit: "privileged"
audit-version: "latest"
warn: "privileged"
warn-version: "latest"
exemptions:
# 要豁免的已认证用户名列表
usernames: []
# 要豁免的运行时类名称列表
runtimeClasses: []
# 要豁免的名字空间列表
namespaces: []
上面的清单需要通过 ——admission-control-config-file 指定到 kube-apiserver。
上面的清单需要通过 --admission-control-config-file 指定给 kube-apiserver。