이 페이지에서는 정책 컨트롤러에서 예외 네임스페이스를 구성하는 방법을 설명합니다.
예외 네임스페이스는 정책 컨트롤러를 사용하여 허용 웹훅 시행에서 네임스페이스를 삭제하지만 모든 위반은 여전히 감사에서 계속 보고됩니다. 네임스페이스를 구성하지 않으면 gatekeeper-system
네임스페이스만 정책 컨트롤러 허용 웹훅 시행을 예외로 처리하도록 구성됩니다.
예외 네임스페이스 구성
예외 가능한 네임스페이스를 구성하면 정책 컨트롤러 허용 웹훅 시행에서 네임스페이스를 예외로 처리하도록 admission.gatekeeper.sh/ignore
라벨을 적용할 수 있습니다. 예외 가능한 네임스페이스를 나중에 삭제하면 정책 컨트롤러가 네임스페이스에서 admission.gatekeeper.sh/ignore
라벨을 삭제하지 않습니다.
시행 시 네임스페이스 예외
정책 컨트롤러 설치 중 또는 설치 후 네임스페이스를 예외로 처리할 수 있습니다. 다음 프로세스는 설치 후 네임스페이스를 예외로 처리하는 방법을 보여줍니다.
Console
- Google Cloud 콘솔의 상황 관리 섹션에서 GKE Enterprise 정책 페이지로 이동합니다.
- 설정 탭의 클러스터 테이블에서 구성 수정 열의 수정 edit을 선택합니다.
- 정책 컨트롤러 구성 수정 메뉴를 확장합니다.
- 네임스페이스 면제 필드에 유효한 네임스페이스 목록을 입력합니다. 이 네임스페이스의 객체는 모든 정책에서 무시됩니다. 네임스페이스는 아직 없어도 됩니다.
- 변경사항 저장을 선택합니다.
gcloud 정책 컨트롤러
허용 웹훅으로 시행에서 제외할 수 있는 네임스페이스 목록에 네임스페이스를 추가하려면 다음 명령어를 실행합니다.
gcloud container fleet policycontroller update \
--memberships=MEMBERSHIP_NAME \
--exemptable-namespaces=[NAMESPACE_LIST]
다음을 바꿉니다.
MEMBERSHIP_NAME
: 네임스페이스를 제외할 등록된 클러스터의 멤버십 이름. 여러 멤버십을 쉼표로 구분하여 지정할 수 있습니다.NAMESPACE_LIST
: 정책 컨트롤러에서 시행에서 제외할 쉼표로 구분된 네임스페이스 목록
이 명령어는 허용 웹훅에서만 리소스를 제외합니다. 리소스는 여전히 감사 대상입니다. 대신 네임스페이스를 감사에서 제외하려면 정책 번들 수준에서 예외를 설정합니다.
gcloud container fleet policycontroller content bundles set BUNDLE_NAME \
--memberships=MEMBERSHIP_NAME \
--exempted-namespaces=[NAMESPACE_LIST]
다음을 바꿉니다.
BUNDLE_NAME
: 제외된 네임스페이스로 업데이트할 정책 번들의 이름MEMBERSHIP_NAME
: 네임스페이스를 제외할 등록된 클러스터의 멤버십 이름. 여러 멤버십을 쉼표로 구분하여 지정할 수 있습니다.NAMESPACE_LIST
: 정책 컨트롤러에서 시행에서 제외할 쉼표로 구분된 네임스페이스 목록
gcloud ConfigManagement
네임스페이스를 시행에서 면제하려면
spec.policyController.exemptableNamespaces
에 네임스페이스 이름을 추가합니다.# apply-spec.yaml applySpecVersion: 1 spec: # Set to true to install and enable Policy Controller policyController: enabled: true exemptableNamespaces: ["NAMESPACE_NAME"] ...
NAMESPACE_NAME을 시행 예외로 처리할 네임스페이스 이름으로 바꿉니다.
여러 네임스페이스를 제외할 수도 있습니다. 예를 들어
not-applicable
및also-not-applicable
네임스페이스를 추가하려면 다음 매니페스트를 적용합니다.# apply-spec.yaml applySpecVersion: 1 spec: # Set to true to install and enable Policy Controller policyController: enabled: true exemptableNamespaces: ["not-applicable","also-not-applicable"] ...
변경사항을
apply-spec.yaml
파일에 적용합니다.gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
다음을 바꿉니다.
- MEMBERSHIP_NAME: 이 구성을 적용할 등록된 클러스터를 추가합니다. Google Cloud 콘솔에 클러스터를 등록한 경우 멤버십 이름은 클러스터 이름과 동일합니다.
- CONFIG_YAML:
apply-spec.yaml
파일의 경로를 추가합니다. - PROJECT_ID: 프로젝트 ID를 추가합니다.
정책 컨트롤러 허용 웹훅이 해당 콘텐츠를 적용하지 않도록 예외 가능한 네임스페이스에 라벨을 지정합니다.
kubectl label namespace NAMESPACE_NAME "admission.gatekeeper.sh/ignore=true"
NAMESPACE_NAME을 시행 예외로 처리할 네임스페이스 이름으로 바꿉니다.
시행 시 제외할 네임스페이스
다음은 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