通过配置内置准入控制器来强制执行 Pod 安全标准
Kubernetes 提供一个内置的 准入控制器 来强制执行 Pod 安全标准。你可以配置此准入控制器以设置集群范围的默认值和豁免策略。
准备工作
在 Kubernetes v1.22 中发布了 Alpha 版本后,Pod Security Admission 在 Kubernetes v1.23 中作为 Beta 版默认可用。从 v1.25 版本开始,Pod Security Admission 已正式发布(Generally Available)。
要检查版本,输入 kubectl version
。
如果你运行的不是 Kubernetes 1.33 版本,你可以切换到查看你当前运行的 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 # see compatibility note
kind: PodSecurityConfiguration
# Defaults applied when a mode label is not set.
#
# Level label values must be one of:
# - "privileged" (default)
# - "baseline"
# - "restricted"
#
# Version label values must be one of:
# - "latest" (default)
# - specific version like "v1.33"
defaults:
enforce: "privileged"
enforce-version: "latest"
audit: "privileged"
audit-version: "latest"
warn: "privileged"
warn-version: "latest"
exemptions:
# Array of authenticated usernames to exempt.
usernames: []
# Array of runtime class names to exempt.
runtimeClasses: []
# Array of namespaces to exempt.
namespaces: []
注意
上述 Manifest 需要通过--admission-control-config-file
参数指定给 kube-apiserver。最后修改于 2023 年 10 月 17 日下午 2:00 PST:Update enforce-standards-admission-controller.md (2d8edf7829)