Escludi gli spazi dei nomi da Policy Controller
Questa pagina descrive come configurare gli spazi dei nomi esenti in Policy Controller.
Gli spazi dei nomi esenti rimuovono uno spazio dei nomi dall'applicazione forzata del webhook di ammissione con Policy Controller, ma eventuali violazioni vengono comunque segnalate in audit. Se non configuri nessuno spazio dei nomi, solo lo spazio dei nomi gatekeeper-system
è preconfigurato come esente dall'applicazione del webhook di ammissione di Policy Controller.
Configura gli spazi dei nomi esenti
La configurazione di uno spazio dei nomi esente consente di applicare l'etichetta admission.gatekeeper.sh/ignore
per escludere lo spazio dei nomi dall'applicazione forzata del webhook di ammissione di Policy Controller. Se in seguito rimuovi uno spazio dei nomi esente,
Policy Controller non rimuove l'etichetta admission.gatekeeper.sh/ignore
dallo spazio dei nomi.
Spazi dei nomi esenti dall'applicazione
Puoi escludere gli spazi dei nomi durante l'installazione di Policy Controller o dopo l'installazione. Il seguente processo mostra come escludere gli spazi dei nomi dopo l'installazione.
Console
- Nella console Google Cloud, vai alla pagina Criterio di GKE Enterprise nella sezione Gestione della postura.
- Nella scheda Impostazioni, nella tabella del cluster, seleziona Modifica edit nella colonna Modifica configurazione.
- Espandi il menu Modifica configurazione di Policy Controller.
- Nel campo Spazi dei nomi esenti, fornisci un elenco di spazi dei nomi validi. Gli oggetti in questi spazi dei nomi vengono ignorati da tutti i criteri. Gli spazi dei nomi non devono ancora esistere.
- Seleziona Salva modifiche.
Policy Controller gcloud
Per aggiungere spazi dei nomi all'elenco di spazi dei nomi che potrebbero essere esenti dall'applicazione da parte del webhook di ammissione, esegui questo comando:
gcloud container fleet policycontroller update \
--memberships=MEMBERSHIP_NAME \
--exemptable-namespaces=[NAMESPACE_LIST]
Sostituisci quanto segue:
MEMBERSHIP_NAME
: il nome dell'appartenenza del cluster registrato per cui escludere gli spazi dei nomi. Puoi specificare più abbonamenti separati da una virgola.NAMESPACE_LIST
: un elenco di spazi dei nomi separati da virgole che vuoi che Policy Controller escluda dall'applicazione forzata.
Questo comando esenta le risorse solo dal webhook di ammissione. Le risorse vengono comunque controllate. Per escludere gli spazi dei nomi dal controllo, imposta invece l'esenzione a livello di pacchetto di criteri:
gcloud container fleet policycontroller content bundles set BUNDLE_NAME \
--memberships=MEMBERSHIP_NAME \
--exempted-namespaces=[NAMESPACE_LIST]
Sostituisci quanto segue:
BUNDLE_NAME
con il nome del pacchetto di criteri che vuoi aggiornare con gli spazi dei nomi esenti.MEMBERSHIP_NAME
: il nome dell'appartenenza del cluster registrato per cui escludere gli spazi dei nomi. Puoi specificare più abbonamenti separati da una virgola.NAMESPACE_LIST
: un elenco di spazi dei nomi separati da virgole che vuoi che Policy Controller escluda dall'applicazione forzata.
ConfigManagement gcloud
Per escludere uno spazio dei nomi dall'applicazione, aggiungi il suo nome in
spec.policyController.exemptableNamespaces
:# apply-spec.yaml applySpecVersion: 1 spec: # Set to true to install and enable Policy Controller policyController: enabled: true exemptableNamespaces: ["NAMESPACE_NAME"] ...
Sostituisci NAMESPACE_NAME con il nome dello spazio dei nomi che vuoi escludere dall'applicazione forzata.
Puoi anche escludere più spazi dei nomi. Ad esempio, per aggiungere gli spazi dei nomi
not-applicable
ealso-not-applicable
, devi applicare il seguente manifest:# apply-spec.yaml applySpecVersion: 1 spec: # Set to true to install and enable Policy Controller policyController: enabled: true exemptableNamespaces: ["not-applicable","also-not-applicable"] ...
Applica le modifiche al file
apply-spec.yaml
:gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
Sostituisci quanto segue:
- MEMBERSHIP_NAME: aggiungi il cluster registrato a cui vuoi applicare questa configurazione. Se hai registrato il cluster nella console Google Cloud, il nome dell'abbonamento corrisponde a quello del cluster.
- CONFIG_YAML: aggiungi il percorso al file
apply-spec.yaml
. - PROJECT_ID: aggiungi il tuo ID progetto.
Etichetta lo spazio dei nomi esente in modo che il webhook di ammissione di Policy Controller non applichi i contenuti:
kubectl label namespace NAMESPACE_NAME "admission.gatekeeper.sh/ignore=true"
Sostituisci NAMESPACE_NAME con il nome dello spazio dei nomi che vuoi escludere dall'applicazione forzata.
Spazi dei nomi da escludere dall'applicazione forzata
Questi sono alcuni spazi dei nomi che possono essere creati da Google Kubernetes Engine (GKE) e dai prodotti correlati. Ti consigliamo di esentarli dall'applicazione forzata per evitare conseguenze indesiderate:
- 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