Policy Controller から Namespace を除外する

このページでは、Policy Controller で除外する Namespace の構成方法について説明します。

除外する Namespace では、Policy Controller を使用したアドミッション Webhook の適用対象から Namespace は除外されますが、違反があれば今後も監査で報告されます。Namespace を構成しない場合は、gatekeeper-system Namespace のみが、Policy Controller アドミッション Webhook の適用対象外として事前構成されます。

除外する Namespace を構成する

除外可能な Namespace を構成すると、admission.gatekeeper.sh/ignore ラベルが適用され、Policy Controller アドミッション Webhook の適用から Namespace が除外されます。除外可能な Namespace を後で削除しても、Policy Controller は Namespace から admission.gatekeeper.sh/ignore ラベルを削除しません。

Namespace を適用の対象外にする

Namespace の除外は Policy Controller のインストール中またはインストール後に行えます。次のプロセスは、インストール後に Namespace を除外する方法を示しています。

コンソール

  1. Google Cloud コンソールで、[ポスチャーの管理] セクションにある GKE Enterprise の [ポリシー] ページに移動します。

    [ポリシー] に移動

  2. [設定] タブのクラスタ テーブルで、[構成の編集] 列にある [編集 ] を選択します。
  3. [Policy Controller の構成を編集] メニューを開きます。
  4. [Exempt namespaces] フィールドに、有効な Namespace のリストを入力します。これらの Namespace 内のオブジェクトは、すべてのポリシーで無視されます。この時点で Namespace が存在している必要はありません。
  5. [変更を保存] をクリックします。

gcloud

アドミッション Webhook によって適用から除外される Namespace のリストに Namespace を追加するには、次のコマンドを実行します。

  gcloud container fleet policycontroller update \
    --memberships=MEMBERSHIP_NAME \
    --exemptable-namespaces=[NAMESPACE_LIST]

次のように置き換えます。

  • MEMBERSHIP_NAME: Namespace を除外する登録済みクラスタのメンバーシップ名。複数のメンバーシップを指定する場合は、カンマ区切りで指定します。
  • NAMESPACE_LIST: Policy Controller の適用対象から除外する Namespace のカンマ区切りリスト。

このコマンドは、アドミッション Webhook からのみリソースを除外します。リソースは引き続き監査されます。Namespace を監査から除外するには、代わりにポリシー バンドル レベルで除外を設定します。

  gcloud container fleet policycontroller content bundles set BUNDLE_NAME \
    --memberships=MEMBERSHIP_NAME \
    --exempted-namespaces=[NAMESPACE_LIST]

次のように置き換えます。

  • BUNDLE_NAME は、除外された Namespace で更新するポリシー バンドルの名前に置き換えます。
  • MEMBERSHIP_NAME: Namespace を除外する登録済みクラスタのメンバーシップ名。複数のメンバーシップを指定する場合は、カンマ区切りで指定します。
  • NAMESPACE_LIST: Policy Controller の適用対象から除外する Namespace のカンマ区切りリスト。

適用から除外する Namespace

以下は、Google Kubernetes Engine(GKE)と関連プロダクトによって作成される可能性のある Namespace です。望ましくない影響を避けるために、次のものを適用除外することをおすすめします。

- 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