本主题描述如何通过配置可豁免的命名空间从政策控制器强制实施中移除命名空间。
准备工作
在集群中安装 Anthos Config Management 和政策控制器。
可豁免的命名空间
如果您配置可豁免的命名空间,则用户可以应用标签 admission.gatekeeper.sh/ignore
。配置可豁免的命名空间时,政策控制器不会将该标签的应用移除到命名空间。
命名空间免于强制执行
要免除命名空间,以便您可以应用 admission.gatekeeper.sh/ignore
标签,请将命名空间的名称添加到 spec.policyController.exemptableNamespaces
中的 ConfigManagement 清单中。
# config-management.yaml
apiVersion: configmanagement.gke.io/v1
kind: ConfigManagement
metadata:
name: config-management
namespace: config-management-system
spec:
# clusterName is required and must be unique among all managed clusters
clusterName: cluster-name
# Set to true to install and enable Policy Controller
policyController:
enabled: true
exemptableNamespaces: ["namespace-name"]
...
您可以免除多个命名空间。例如,要在集群 my-cluster
中免除命名空间 not-applicable
和 also-not-applicable
,可以应用以下清单:
# config-management.yaml
apiVersion: configmanagement.gke.io/v1
kind: ConfigManagement
metadata:
name: config-management
namespace: config-management-system
spec:
# clusterName is required and must be unique among all managed clusters
clusterName: my-cluster
# Set to true to install and enable Policy Controller
policyController:
enabled: true
exemptableNamespaces: ["not-applicable","also-not-applicable"]
...
为命名空间添加标签
接下来,为您的命名空间添加标签,以免 Anthos Config Management 强制执行其内容。
kubectl label namespace namespace-name "admission.gatekeeper.sh/ignore=true"