정책 관리자에서 네임스페이스 제외

이 주제에서는 면제 가능한 네임스페이스를 구성하여 Policy Controller로 시행에서 네임스페이스를 제거하는 방법을 설명합니다.

시작하기 전에

클러스터에 Anthos Config Management 및 Policy Controller가 있어야 합니다.

면제 가능한 네임스페이스

면제 가능한 네임스페이스를 구성하면 사용자가 admission.gatekeeper.sh/ignore 라벨을 적용할 수 있습니다. 면제 가능한 네임스페이스를 구성하면 Policy Controller는 이 라벨을 네임스페이스에 적용하지 않습니다.

시행에서 네임스페이스 면제

네임스페이스를 제외하여 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-applicablealso-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"]
...

네임스페이스에 라벨 지정

다음으로 Operator가 콘텐츠를 시행하지 않도록 네임스페이스에 라벨을 지정합니다.

kubectl label namespace namespace-name "admission.gatekeeper.sh/ignore=true"