本页面介绍了如何在 Policy Controller 中配置豁免命名空间。
豁免命名空间使用 Policy Controller 从准入网络钩子强制执行中移除命名空间,但任何违规行为仍会在审核中报告。如果您未配置任何命名空间,则只有 gatekeeper-system
命名空间会预先配置为免除 Policy Controller 的准入网络钩子强制执行。
配置豁免命名空间
配置可豁免命名空间会应用 admission.gatekeeper.sh/ignore
标签,该标签豁免命名空间进行 Policy Controller 准入 webhook 强制执行。如果您以后移除可豁免的命名空间,则 Policy Controller 不会从该命名空间中移除 admission.gatekeeper.sh/ignore
标签。
命名空间免于强制执行
您可以在安装 Policy Controller 期间或安装后豁免命名空间。以下过程展示了如何在安装后豁免命名空间。
控制台
- 在 Google Cloud 控制台中,前往安全状况管理部分下的 GKE Enterprise 政策页面。
- 在设置标签页下的集群表中,选择修改配置列中的修改 edit。
- 展开修改 Policy Controller 配置菜单。
- 在豁免命名空间 (Exempt namespaces) 字段中,提供有效命名空间的列表。这些命名空间中的对象会被所有政策忽略。这些命名空间不需要已经存在。
- 选择保存更改。
gcloud
如需将命名空间添加到可能免于准入 webhook 强制执行的命名空间列表,请运行以下命令:
gcloud container fleet policycontroller update \
--memberships=MEMBERSHIP_NAME \
--exemptable-namespaces=[NAMESPACE_LIST]
替换以下内容:
MEMBERSHIP_NAME
:要豁免命名空间的已注册集群的成员资格名称。您可以指定多个成员资格(以英文逗号分隔)。NAMESPACE_LIST
:您希望 Policy Controller 免除强制执行的命名空间列表(以英文逗号分隔)。
此命令仅豁免准许 webhook 的资源。这些资源仍会接受审核。如需改为不对命名空间进行审核,请在政策软件包级层设置豁免项:
gcloud container fleet policycontroller content bundles set BUNDLE_NAME \
--memberships=MEMBERSHIP_NAME \
--exempted-namespaces=[NAMESPACE_LIST]
替换以下内容:
- 将
BUNDLE_NAME
替换为您要使用豁免命名空间更新的政策软件包的名称。 MEMBERSHIP_NAME
:要豁免命名空间的已注册集群的成员资格名称。您可以指定多个成员资格(以英文逗号分隔)。NAMESPACE_LIST
:您希望 Policy Controller 免除强制执行的命名空间列表(以英文逗号分隔)。
要免除强制执行的命名空间
以下是一些可能由 Google Kubernetes Engine (GKE) 及相关产品创建的命名空间。您可能希望免除它们强制执行,以避免产生不必要的影响:
- anthos-creds
- anthos-identity-service
- apigee
- apigee-system
- asm-system
- capi-kubeadm-bootstrap-system
- capi-system
- cert-manager
- cnrm-system
- config-management-monitoring
- config-management-system
- gke-connect
- gke-gmp-system
- gke-managed-cim
- gke-managed-filestorecsi
- gke-managed-metrics-server
- gke-managed-system
- gke-system
- gmp-public
- gmp-system
- hnc-system
- istio-system
- kube-node-lease
- kube-public
- kube-system
- poco-trial
- resource-group-system
- vm-system