本頁說明如何在 Policy Controller 中設定豁免的命名空間。
豁免命名空間會從 Policy Controller 的許可 Webhook 強制執行作業中移除命名空間,但系統仍會在稽核中回報任何違規事項。如果您未設定任何命名空間,系統只會預先設定 gatekeeper-system
命名空間,使其免受 Policy Controller 許可 Webhook 強制執行。
設定豁免命名空間
設定可豁免的命名空間會套用 admission.gatekeeper.sh/ignore
標籤,讓命名空間免於 Policy Controller 許可 Webhook 強制執行。如果您之後移除可豁免的命名空間,政策控制器不會從命名空間中移除 admission.gatekeeper.sh/ignore
標籤。
豁免命名空間,不強制執行政策
您可以在安裝 Policy Controller 時或安裝後,豁免命名空間。以下程序說明如何在安裝後豁免命名空間。
控制台
- 在 Google Cloud 控制台中,前往「Posture Management」(狀態管理) 專區下方的 GKE Enterprise「Policy」(政策) 頁面。
- 在「設定」分頁的叢集表格中,選取「編輯設定」欄中的「編輯」edit。
- 展開「編輯 Policy Controller 設定」選單。
- 在「Exempt namespaces」(豁免命名空間) 欄位中,提供有效命名空間的清單。 所有政策都會忽略這些命名空間中的物件。命名空間不一定要現在就存在。
- 選取「儲存變更」。
gcloud
如要將命名空間新增至可豁免於准入 Webhook 強制執行的命名空間清單,請執行下列指令:
gcloud container fleet policycontroller update \
--memberships=MEMBERSHIP_NAME \
--exemptable-namespaces=[NAMESPACE_LIST]
更改下列內容:
MEMBERSHIP_NAME
:已註冊叢集的成員名稱,用於豁免命名空間。你可以指定多個會員方案,並以半形逗號分隔。NAMESPACE_LIST
:以半形逗號分隔的命名空間清單,您希望政策控制器豁免執行這些命名空間。
這項指令只會免除資源的許可控制 Webhook。資源仍在稽核中。如要改為將命名空間排除在稽核範圍之外,請在政策套件層級設定豁免:
gcloud container fleet policycontroller content bundles set BUNDLE_NAME \
--memberships=MEMBERSHIP_NAME \
--exempted-namespaces=[NAMESPACE_LIST]
更改下列內容:
BUNDLE_NAME
,並提供要更新的政策套件名稱,其中包含已排除的命名空間。MEMBERSHIP_NAME
:已註冊叢集的成員名稱,用於豁免命名空間。你可以指定多個會員方案,並以半形逗號分隔。NAMESPACE_LIST
:以半形逗號分隔的命名空間清單,您希望政策控制器豁免執行這些命名空間的政策。
要豁免強制執行的命名空間
這些命名空間可能由 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