Questa pagina mostra come aggiungere un cluster GKE su Google Cloud al tuo parco risorse. A seconda del progetto e del caso d'uso, puoi utilizzare la console Google Cloud, Terraform, Config Connector o Google Cloud CLI per la registrazione. Puoi anche creare e registrare un nuovo cluster in un solo passaggio utilizzando Google Cloud CLI.
Prima di iniziare
Assicurati di aver seguito i prerequisiti generali per la registrazione di un cluster.
A seconda del caso d'uso, le registrazioni dei cluster GKE possono richiedere anche quanto segue:
- Se vuoi che nel cluster registrato sia attivato Workload Identity per il parco risorse (consigliato), assicurati che GKE Workload Identity sia abilitato sul cluster. Per i cluster Autopilot è abilitata l'opzione Workload Identity per impostazione predefinita.
- Se stai registrando un cluster in un parco risorse in un altro progetto (noto anche come registrazione tra progetti), assicurati di aver configurato le autorizzazioni necessarie.
- Se stai registrando un cluster utilizzando Terraform o Config Connector, assicurati di aver impostato un account di servizio Google Cloud per lo strumento e di averlo configurato in modo che lo strumento possa autenticarsi a Google Cloud:
- Se vuoi installare l'agente Connect sul tuo cluster registrato (ancora richiesto per un numero ridotto di casi d'uso), assicurati di disporre di un'identità da utilizzare per l'autenticazione in Google Cloud. Può essere Workload Identity, come descritto sopra, oppure puoi scegliere di creare un account di servizio Google.
Registra il tuo cluster
Come hai visto nei prerequisiti, ti consigliamo di registrare i tuoi cluster GKE con la funzionalità Workload Identity abilitata, che fornisce un modo coerente per l'autenticazione delle applicazioni da parte delle applicazioni e dei servizi Google Cloud. Puoi scoprire di più sui vantaggi dell'attivazione di Workload Identity del parco risorse in Utilizzare Workload Identity del parco risorse. Tutte le opzioni seguenti consentono di abilitare Workload Identity, se necessario.
Se è abilitata l'intera piattaforma Anthos (operazione che puoi eseguire abilitando l'API Anthos nel tuo progetto), puoi registrare un cluster esistente nello stesso progetto dalla pagina Cluster Anthos nella console Google Cloud. Questo è il modo più semplice e veloce per registrare un cluster GKE esistente. L'utilizzo di questo approccio ti consente di visualizzare il cluster come parte del tuo parco risorse nella console e di utilizzare le funzionalità abilitate per il parco risorse, come Anthos Config Management.
Puoi registrare un cluster GKE nuovo o esistente (con o senza abilitare l'intera piattaforma Anthos) utilizzando Google Cloud CLI.
Puoi creare e registrare un cluster GKE (con o senza abilitare l'intera piattaforma Anthos) utilizzando Terraform o Config Connector.
Per registrare un cluster GKE:
Console
Per registrare un cluster:
- (Facoltativo) Se vuoi che il cluster registrato utilizzi Flee Workload Identity (consigliato), assicurati che GKE Workload Identity sia abilitato sul cluster. Per i cluster con GKE Workload Identity, è abilitata automaticamente la funzionalità Workload Identity del parco risorse quando le registri dalla console Google Cloud.
Nella console Google Cloud, vai alla pagina Cluster Anthos. Questa pagina mostra tutti i cluster registrati.
Fai clic su Registra cluster esistente sopra l'elenco dei cluster.
Fai clic su Registrati accanto al cluster non registrato che vuoi aggiungere al tuo parco risorse.
gcloud
Puoi utilizzare Google Cloud CLI per registrare un cluster nuovo o esistente. Tieni presente che i comandi non legacy richiedono la versione dell'interfaccia a riga di comando gcloud 423.0.0 o successiva, con il componente alpha o beta installato.
La registrazione di un cluster utilizzando Google Cloud CLI fornisce per impostazione predefinita una località di appartenenza a livello di area geografica.
Crea e registra un cluster
Per creare un nuovo cluster GKE e registrarlo in un parco risorse in un solo passaggio, esegui uno dei seguenti comandi, a seconda che tu voglia creare un cluster standard o Autopilot:
gcloud beta container clusters create CLUSTER_NAME \ --fleet-project=FLEET_HOST_PROJECT \ --workload-pool=PROJECT_ID.svc.id.goog
o
gcloud beta container clusters create-auto CLUSTER_NAME \ --fleet-project=FLEET_HOST_PROJECT
dove:
- CLUSTER_NAME è il nome che hai scelto per il tuo cluster. Questo diventerà anche il nome di appartenenza del cluster. Se esiste già un cluster con questo nome nel tuo parco risorse scelto, il comando restituirà un errore.
- FLEET_HOST_PROJECT è il progetto host del parco risorse per il parco risorse a cui vuoi che il cluster partecipi.
- PROJECT_ID è l'ID progetto Google Cloud per il progetto proprietario del nuovo cluster.
Se stai creando un cluster standard, ti consigliamo di creare il cluster con GKE Workload Identity abilitato, come nell'esempio, poiché questo consente di attivare Workload Identity per il tuo cluster registrato. Ometti il flag --workload-pool
se non vuoi utilizzare questa funzionalità. Per i cluster Autopilot è abilitata l'opzione Workload Identity per impostazione predefinita.
A seconda del cluster che vuoi creare, puoi anche specificare una qualsiasi delle altre opzioni per la creazione di un cluster standard di zona, standard a livello di regione o Autopilot. Potresti anche dover specificare una zona di Compute Engine se non hai configurato una zona predefinita per Google Cloud CLI e un progetto Google Cloud per possedere il cluster, se non hai configurato un progetto predefinito.
Scopri di più sulla creazione di diversi tipi di cluster GKE nella documentazione di GKE.
Registra un cluster esistente
Per registrare un cluster GKE esistente, esegui il comando seguente:
gcloud beta container clusters update CLUSTER_NAME --fleet-project=FLEET_HOST_PROJECT
dove:
- CLUSTER_NAME è il nome del cluster. Questo diventerà anche il nome di appartenenza del cluster. Se esiste già un cluster con questo nome nel tuo parco risorse scelto, il comando restituirà un errore.
- FLEET_HOST_PROJECT è il progetto host del parco risorse per il parco risorse a cui vuoi che il cluster partecipi.
Questo comando abilita il parco risorse Workload Identity per il cluster se nel cluster è già abilitato GKE Workload Identity.
Registra un cluster esistente (comando precedente)
Questo comando precedente è ancora supportato, anche se nella maggior parte dei casi d'uso consigliamo di registrare i cluster esistenti usando il comando update
descritto nella sezione precedente. L'utilizzo di questo comando consente di scegliere di installare l'agente Connect nel cluster, necessario per l'integrazione con alcuni servizi del parco risorse, come Cloud Deploy. Per l'autenticazione su Google Cloud, puoi scegliere che l'agente utilizzi il parco risorse Workload Identity (consigliato) o un account di servizio Google Cloud.
Registra un cluster GKE con Workload Identity del parco risorse
Assicurati che nel cluster sia abilitato GKE Workload Identity, seguendo le istruzioni riportate nei nostri prerequisiti.
Esegui uno dei seguenti comandi per registrare il cluster:
gcloud container fleet memberships register MEMBERSHIP_NAME \ --gke-uri=GKE_URI \ --enable-workload-identity
o
gcloud container fleet memberships register MEMBERSHIP_NAME \ --gke-cluster=GKE_CLUSTER \ --enable-workload-identity
Sostituisci quanto segue:
- MEMBERSHIP_NAME: il nome dell'appartenenza che scegli per rappresentare in modo univoco il cluster che viene registrato nel parco risorse.
- GKE_URI: l'URI del cluster GKE,
ad esempio:
https://container.googleapis.com/v1/projects/my-gke-project/locations/us-central1-a/clusters/my-gke-cluster
. Puoi ottenere l'URI eseguendogcloud container clusters list --uri
. - GKE_CLUSTER: il
location/name
del cluster GKE del progetto attuale. La località può essere una zona o una regione, ad esempious-central1-a/my-gke-cluster
.
Se vuoi installare l'agente Connect sul cluster, aggiungi il flag
--install-connect-agent
facoltativo a uno dei comandi, come nell'esempio seguente. Per impostazione predefinita (senza questo flag), l'agente non è installato.gcloud container fleet memberships register MEMBERSHIP_NAME \ --gke-cluster=GKE_CLUSTER \ --enable-workload-identity \
--install-connect-agent
Registra un cluster GKE con un account di servizio
Per registrare un cluster con l'agente Connect, specificando un account di servizio:
Assicurati di aver creato un account di servizio utilizzabile dall'agente Connect, come descritto nei nostri prerequisiti.
Esegui uno dei seguenti comandi:
gcloud container fleet memberships register MEMBERSHIP_NAME \ --gke-uri=GKE_URI \ --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH \ --install-connect-agent
o
gcloud container fleet memberships register MEMBERSHIP_NAME \ --gke-cluster=GKE_CLUSTER \ --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH \ --install-connect-agent
Sostituisci quanto segue:
- MEMBERSHIP_NAME: il nome dell'appartenenza che scegli per rappresentare in modo univoco il cluster che viene registrato nel parco risorse.
- SERVICE_ACCOUNT_KEY_PATH: percorso file locale del file JSON della chiave privata dell'account di servizio scaricato come parte dei prerequisiti.
Questa chiave dell'account di servizio è archiviata come secret denominato
creds-gcp
nello spazio dei nomigke-connect
. - GKE_URI: l'URI del cluster GKE,
ad esempio:
https://container.googleapis.com/v1/projects/my-gke-project/locations/us-central1-a/clusters/my-gke-cluster
. Puoi ottenere l'URI eseguendogcloud container clusters list --uri
. - GKE_CLUSTER: il
location/name
del cluster GKE del progetto attuale. La località può essere una zona o una regione, ad esempious-central1-a/my-gke-cluster
.
Terraform
Puoi registrare i cluster GKE con Terraform utilizzando il provider google-beta
. Puoi trovare un riferimento completo per la risorsa gke_hub_membership
utilizzata per configurare la registrazione nel registro Terraform.
Assicurati di aver creato un account di servizio che Terraform utilizzi come descritto nei prerequisiti prima di seguire queste istruzioni.
Registra un cluster GKE
Per registrare il cluster, utilizza i seguenti blocchi nella configurazione.
Specifica il provider
google-beta
come fornitore obbligatorio, come indicato nello snippet seguente. La versione deve essere precedente alla 3.62.0.terraform { required_providers { google-beta = { source = "hashicorp/google-beta" version = "3.67.0" } } }
Questo provider è obbligatorio se vuoi utilizzare gke_hub_membership.
Imposta i seguenti valori predefiniti per il provider:
provider "google-beta" { credentials = file("SERVICE_ACCOUNT_KEY_PATH") project = "PROJECT_ID" }
Sostituisci quanto segue:
- SERVICE_ACCOUNT_KEY_PATH: percorso file locale del file JSON della chiave privata dell'account di servizio scaricato come parte dei prerequisiti. Questa chiave dell'account di servizio è archiviata come
secret denominato
creds-gcp
nello spazio dei nomigke-connect
. Questa chiave dell'account di servizio consente a Terraform di accedere al tuo account Google Cloud. - PROJECT_ID: il progetto predefinito che scegli per eseguire il provisioning delle risorse Terraform.
- SERVICE_ACCOUNT_KEY_PATH: percorso file locale del file JSON della chiave privata dell'account di servizio scaricato come parte dei prerequisiti. Questa chiave dell'account di servizio è archiviata come
secret denominato
Crea un cluster GKE (facoltativo)
Se vuoi registrare un cluster esistente, salta questo passaggio.
resource "google_container_cluster" "TF_CLUSTER_RESOURCE_NAME" { provider = google-beta name = "CLUSTER_NAME" location = "ZONE" initial_node_count = 1 }
Sostituisci quanto segue:
- TF_CLUSTER_RESOURCE_NAME: il nome che scegli per identificare in modo univoco la risorsa
google_container_cluster
Terraform creata da questo blocco. - CLUSTER_NAME: il nome che scegli di rappresentare in modo univoco il cluster che hai creato.
- ZONE: la zona predefinita che scegli per eseguire il provisioning della risorsa del cluster GKE. Ad esempio:
us-central1-a
.
- TF_CLUSTER_RESOURCE_NAME: il nome che scegli per identificare in modo univoco la risorsa
Registrare un'appartenenza al cluster GKE.
resource "google_gke_hub_membership" "TF_MEMBERSHIP_RESOURCE_NAME" { provider = google-beta project = "FLEET_PROJECT_ID" membership_id = "MEMBERSHIP_NAME" endpoint { gke_cluster { resource_link = "//container.googleapis.com/CLUSTER_RESOURCE_NAME" } } }
Sostituisci quanto segue:
- TF_MEMBERSHIP_RESOURCE_NAME: il nome che scegli per identificare in modo univoco la risorsa
google_gke_hub_membership
di Terraform creata da questo blocco. - FLEET_PROJECT_ID: se non viene configurato, l'appartenenza al cluster verrà creata nel progetto predefinito specificato in precedenza (PROJECT_ID). Imposta questo campo se vuoi registrare il cluster GKE in un parco risorse in un altro progetto.
- MEMBERSHIP_NAME: il nome di appartenenza che scegli di rappresentare in modo univoco il cluster nel parco risorse.
- CLUSTER_RESOURCE_NAME: il nome della risorsa Google Cloud per il cluster GKE. Ad esempio:
projects/my-project/zones/us-west1-a/clusters/my-cluster
. Se viene eseguito il provisioning del cluster con Terraform, il valore è${google_container_cluster.TF_CLUSTER_RESOURCE_NAME.id}
.
- TF_MEMBERSHIP_RESOURCE_NAME: il nome che scegli per identificare in modo univoco la risorsa
Abilita Workload Identity in un cluster GKE registrato
L'attivazione di Workload Identity utilizza la stessa configurazione della registrazione di un cluster, con i seguenti passaggi aggiuntivi.
Abilita Workload Identity di GKE aggiungendo quanto segue nel blocco di risorse
google_container_cluster
pertinente. Devi eseguire questa operazione sia per i cluster nuovi sia per quelli esistenti.workload_identity_config { workload_pool = "PROJECT_ID.svc.id.goog" }
Sostituisci quanto segue:
- PROJECT_ID: il progetto predefinito che scegli per eseguire il provisioning delle tue risorse Terraform.
Abilita Fleet Workload Identity, aggiungendo quanto segue nel blocco di risorse
google_gke_hub_membership
pertinente.authority { issuer = "https://container.googleapis.com/v1/CLUSTER_RESOURCE_NAME" }
Sostituisci quanto segue:
- CLUSTER_RESOURCE_NAME: la risorsa Google Cloud per il cluster GKE. Ad esempio:
projects/my-project/zones/us-west1-a/clusters/my-cluster
. Se viene eseguito il provisioning del cluster con Terraform, il valore è${google_container_cluster.TF_CLUSTER_RESOURCE_NAME.id}
.
- CLUSTER_RESOURCE_NAME: la risorsa Google Cloud per il cluster GKE. Ad esempio:
Config Connector
Se hai installato il componente aggiuntivo Config Connector, puoi utilizzare Config Connector per registrare i cluster GKE. Assicurati di avere una versione di Config Connector precedente alla 1.47.0 e di aver creato un account di servizio come descritto nei prerequisiti.
Puoi trovare un riferimento completo per la risorsa GKEHubMembership
nella documentazione di riferimento di Config Connector.
Registra un cluster GKE
Per registrare il cluster, specifica prima dove vuoi creare le risorse, seguendo le istruzioni nella guida di Config Connector. Quindi, crea un file YAML per registrarlo e, facoltativamente, crea un cluster come segue:
Crea e registra un cluster GKE
Crea un cluster GKE, come nell'esempio seguente:
apiVersion: container.cnrm.cloud.google.com/v1beta1 kind: ContainerCluster metadata: name: CLUSTER_NAME spec: location: LOCATION initialNodeCount: 1
Sostituisci quanto segue:
- CLUSTER_NAME: il nome che hai scelto di rappresentare in modo univoco il cluster che hai creato con Config Connector.
- LOCATION: la zona o la regione che hai scelto per il provisioning della risorsa del cluster GKE. Ad esempio:
us-central1-a
.
Per un elenco completo delle opzioni durante la creazione di un cluster GKE con Config Connector, consulta la documentazione di Config Connector.
Registrare un'appartenenza al cluster GKE.
apiVersion: gkehub.cnrm.cloud.google.com/v1beta1 kind: GKEHubMembership metadata: name: MEMBERSHIP_NAME spec: location: MEMBERSHIP_LOCATION endpoint: gkeCluster: resourceRef: name: CLUSTER_NAME
Sostituisci quanto segue:
- MEMBERSHIP_NAME: il nome dell'appartenenza che hai scelto per rappresentare in modo univoco il cluster registrato nel parco risorse.
- MEMBERSHIP_LOCATION: la località del servizio parco risorse di cui vuoi gestire l'appartenenza al cluster. Può essere la località del cluster (consigliato) o
global
. Scopri di più nella pagina Gruppo di appartenenza al parco risorse. Non puoi specificare una località diversa da quella del cluster: in questo caso la registrazione non riesce. - CLUSTER_NAME: il nome che hai scelto di rappresentare in modo univoco il cluster che hai creato con Config Connector.
Registra il cluster in un altro progetto
Aggiungi quanto segue al campo metadata
della risorsa GKEHubMembership
per registrare un cluster in un parco risorse in un altro progetto.
metadata:
annotations:
cnrm.cloud.google.com/project-id: FLEET_PROJECT_ID
Sostituisci quanto segue:
- FLEET_PROJECT_ID: il progetto host del parco risorse che hai scelto per registrare il cluster GKE.
Registra un cluster esistente
Utilizza la configurazione seguente se vuoi registrare qualsiasi cluster esistente, indipendentemente da come è stato creato. In questo caso, devi specificare il nome completo della risorsa del cluster in modo che Config Connector possa trovarlo.
Sostituisci il campo resourceRef
della risorsa GKEHubMembership
con:
resourceRef:
external: //container.googleapis.com/CLUSTER_RESOURCE_NAME
Sostituisci quanto segue:
- CLUSTER_RESOURCE_NAME: il nome della risorsa Google Cloud per il cluster GKE. Ad esempio:
projects/my-project/zones/us-west1-a/clusters/my-cluster
.
Se il cluster è stato creato con Config Connector, non è necessario specificare il nome completo del cluster.
Abilita Workload Identity in un cluster GKE registrato
L'attivazione di Workload Identity utilizza la stessa configurazione della registrazione di un cluster, con i seguenti passaggi aggiuntivi.
Abilita GKE Workload Identity aggiungendo quanto segue nel campo
spec
della risorsaContainerCluster
. Devi eseguire questa operazione sia per i cluster nuovi sia per quelli esistenti.spec: workloadIdentityConfig: workloadPool: PROJECT_ID.svc.id.goog
Sostituisci quanto segue:
- PROJECT_ID: il progetto predefinito che hai scelto tramite l'annotazione dello spazio dei nomi per creare la risorsa del cluster GKE.
Abilita Workload Identity del parco risorse aggiungendo quanto segue nel campo
spec
del blocco di risorseGKEHubMembership
.spec: authority: issuer: https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME }
Sostituisci quanto segue:
- PROJECT_ID: il progetto predefinito che hai scelto tramite l'annotazione dello spazio dei nomi per creare la risorsa del cluster GKE.
- LOCATION: la zona o la regione che hai scelto per il provisioning della risorsa del cluster GKE. Ad esempio:
us-central1-a
. - CLUSTER_NAME: il nome che hai scelto per rappresentare in modo univoco il cluster che hai creato.
Risolvere i problemi
Se riscontri problemi durante la configurazione, consulta la nostra guida per la risoluzione dei problemi.
Che cosa succede dopo?
- Convalidare la registrazione del cluster riuscita e ottenere altri dettagli sull'iscrizione al parco risorse, come descritto in Ottenere lo stato di iscrizione al parco risorse
- Configura l'autenticazione sui cluster registrati:
- Accedi a un cluster dalla console Google Cloud