Installa Config Connector in modalità con nome dello spazio dei nomi
Questa pagina spiega come installare Config Connector in modalità con spazi dei nomi.
L'installazione in modalità con nome è un'estensione dell'installazione di Config Connector. La modalità con spazi dei nomi supporta la gestione di più progetti, ciascuno con le proprie Google Cloud identità.
Prima di iniziare
Prima di configurare Config Connector per l'esecuzione in modalità con spazi dei nomi, assicurati di aver installato Config Connector.
Configura Config Connector per l'esecuzione in modalità con spazi dei nomi
Per attivare la modalità con nome nello spazio dei nomi:
Copia il seguente manifest YAML in un file denominato
configconnector.yaml
:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: namespaced stateIntoSpec: Absent
Applica la configurazione al cluster con
kubectl apply
:kubectl apply -f configconnector.yaml
Configura Config Connector per gestire le risorse nei tuoi spazi dei nomi
Nelle sezioni seguenti, il Google Cloud progetto in cui installi Config Connector è noto come progetto host o HOST_PROJECT_ID. Gli altri progetti in cui gestisci le risorse sono noti come progetti gestiti o MANAGED_PROJECT_ID. Potrebbe trattarsi dello stesso progetto se intendi utilizzare Config Connector solo per creare Google Cloud risorse nello stesso progetto del tuo cluster.
Creazione di uno spazio dei nomi
Puoi saltare questo passaggio se hai già uno spazio dei nomi da utilizzare per organizzare le risorseGoogle Cloud .
Utilizza kubectl
per creare un nuovo spazio dei nomi eseguendo il seguente comando:
kubectl create namespace NAMESPACE
Sostituisci NAMESPACE con un nome per lo spazio dei nomi.
Configura un criterio IAM per connetterti alle Google Cloud API
Per consentire a Config Connector di gestire le tue Google Cloud risorse utilizzando la federazione delle identità per i carichi di lavoro per GKE, crea un criterio IAM.
Per configurare il vincolo dei criteri, crea un criterio di autorizzazione IAM che fa riferimento all'account di servizio Kubernetes creato automaticamente quando in installi Config Connector sul tuo cluster:
gcloud projects add-iam-policy-binding projects/PROJECT_ID \
--role=roles/iam.workloadIdentityUser \
--member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/cnrm-system/cnrm-controller-manager \
--condition=None
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto Google Cloud .PROJECT_NUMBER
: il numero Google Cloud numerico del progetto.NAMESPACE
: il nome dello spazio dei nomi Kubernetes per il servizio account Config Connector. Se non hai creato esplicitamente uno spazio dei nomi, il valore èdefault
.
Creazione di un contesto ConfigConnector
Per creare Google Cloud risorse, devi configurare Config Connector
per monitorare il tuo spazio dei nomi aggiungendo un oggetto ConfigConnectorContext
nello spazio dei nomi che vuoi utilizzare.
Per creare un ConfigConnectorContext
, completa i seguenti passaggi:
Copia il seguente manifest YAML in un file denominato
configconnectorcontext.yaml
:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnectorContext metadata: # you can only have one ConfigConnectorContext per namespace name: configconnectorcontext.core.cnrm.cloud.google.com namespace: NAMESPACE spec: googleServiceAccount: "NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" stateIntoSpec: Absent
Sostituisci quanto segue:
- NAMESPACE con il nome dello spazio dei nomi.
- NAMESPACE_GSA con il nome dell'account di servizio Google associato al tuo spazio dei nomi.
- HOST_PROJECT_ID con l'ID del tuo progetto host.
Applica il file al tuo cluster con
kubectl
:kubectl apply -f configconnectorcontext.yaml
Verifica che l'operatore Config Connector abbia creato un account di servizio Kubernetes per il tuo spazio dei nomi con
kubectl
eseguendo il seguente comando:kubectl get serviceaccount/cnrm-controller-manager-NAMESPACE -n cnrm-system
Sostituisci NAMESPACE con il nome dello spazio dei nomi.
Verifica che il pod del controller Config Connector sia in esecuzione per il tuo spazio dei nomi con
kubectl
eseguendo il seguente comando:kubectl wait -n cnrm-system \ --for=condition=Ready pod \ -l cnrm.cloud.google.com/component=cnrm-controller-manager \ -l cnrm.cloud.google.com/scoped-namespace=NAMESPACE
Sostituisci NAMESPACE con il nome dello spazio dei nomi.
Se il controller Config Connector è in esecuzione, l'output è simile al seguente:
cnrm-controller-manager-abcdefghijk-0 condition met.
Configura Config Connector in modo che non gestisca più le risorse nel tuo spazio dei nomi
Per configurare Config Connector in modo che non gestisca più il tuo spazio dei nomi, rimuovi tutte le risorse di Config Connector nello spazio dei nomi ed elimina ConfigConnectorContext
nello spazio dei nomi.
Rimuovi le risorse di Config Connector nel tuo spazio dei nomi
Per completare la rimozione di ConfigConnectorContext
, rimuovi tutte le risorse di Config Connector dal tuo spazio dei nomi.
Per trovare tutte le risorse di Config Connector nel tuo spazio dei nomi, elenca tutte le risorse per ogni definizione di risorsa personalizzata di Config Connector.
kubectl get gcp -n NAMESPACE
Sostituisci NAMESPACE con il nome dello spazio dei nomi.
Per rimuovere tutte le risorse di Config Connector, per ogni risorsa nell'output del passaggio precedente, esegui un comando di eliminazione.
kubectl delete -n NAMESPACE KIND NAME
Sostituisci quanto segue:
NAMESPACE
: il nome dello spazio dei nomiKIND
: il tipo di risorsa rilevato nel passaggio precedenteNAME
: il nome della risorsa scoperta nel passaggio precedente
Rimuovi ConfigConnectorContext
Per configurare Config Connector in modo che non gestisca più le risorse di Config Connector nel tuo spazio dei nomi, elimina ConfigConnectorContext
nello spazio dei nomi.
kubectl delete -n NAMESPACE ConfigConnectorContext configconnectorcontext.core.cnrm.cloud.google.com
Sostituisci NAMESPACE con il nome dello spazio dei nomi.
L'eliminazione di ConfigConnectorContext
non verrà completata finché tutte le risorse di Config Connector non saranno rimosse dal tuo spazio dei nomi.
Disinstallazione di Config Connector
Non utilizzare i passaggi che seguono per disinstallare un cluster di Controllori di configurazione.
Utilizza kubectl delete
per rimuovere i CRD di Config Connector insieme ai componenti del controller:
kubectl delete ConfigConnectorContext --all -A –wait=false
kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \
--wait=true
Per disinstallare l'operatore Config Connector, esegui il seguente comando:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Passaggi successivi
- Inizia a utilizzare Config Connector.
- Scopri le best practice per Config Connector.