Puoi utilizzare i cluster collegati GKE per gestire centralmente i cluster Kubernetes conformi a CNCF esistenti nella console Google Cloud , inclusi i cluster ospitati su AWS, Azure o altrove. Questa gestione centralizzata consolida le operazioni e ti aiuta a eseguire il deployment e l'esecuzione dei cluster in modo più efficiente in più ambienti. Questo documento mostra agli amministratori della piattaforma come collegare i cluster Kubernetes idonei a Google Cloud.
Se colleghi un cluster Amazon EKS o Azure AKS, consulta Collega il cluster EKS o Collega il cluster AKS. Per istruzioni sull'utilizzo della generazione precedente di cluster collegati a GKE, consulta Collegare cluster di terze parti.
Cluster Kubernetes supportati
Puoi aggiungere qualsiasi cluster Kubernetes conforme con nodi x86 al tuo parco risorse e visualizzarlo nella console Google Cloud insieme ai tuoi cluster GKE.
Sebbene Google non verifichi la compatibilità di tutte le distribuzioni di Kubernetes con le funzionalità, eventuali incompatibilità rilevate sono documentate qui. Per ulteriori dettagli e assistenza per la risoluzione dei problemi, consulta Versione del cluster GKE e supporto per l'upgrade.
Prerequisiti
Assicurati che il cluster soddisfi i requisiti del cluster.
Quando colleghi il cluster, devi specificare quanto segue:
- Una regione amministrativa supportata Google Cloud
- Una versione della piattaforma
La regione amministrativa è una Google Cloud regione da cui amministrare il cluster collegato. Puoi scegliere qualsiasi regione supportata, ma la best practice è scegliere la regione geograficamente più vicina al tuo cluster. Nella regione amministrativa non vengono archiviati dati utente.
La versione della piattaforma è la versione dei cluster collegati a GKE da installare sul tuo cluster. Puoi elencare tutte le versioni supportate eseguendo questo comando:
gcloud container attached get-server-config \
--location=GOOGLE_CLOUD_REGION
Sostituisci GOOGLE_CLOUD_REGION con il nome della Google Cloud posizione da cui amministrare il cluster.
Numerazione delle versioni della piattaforma
Questi documenti fanno riferimento alla versione dei cluster collegati a GKE come versione della piattaforma, per distinguerla dalla versione di Kubernetes. I cluster collegati a GKE utilizzano la stessa convenzione di numerazione delle versioni di GKE, ad esempio 1.21.5-gke.1. Quando colleghi o aggiorni il cluster, devi scegliere una versione della piattaforma la cui versione secondaria sia uguale o un livello inferiore rispetto alla versione di Kubernetes del cluster. Ad esempio, puoi collegare un cluster che esegue Kubernetes v1.22.* con la versione della piattaforma dei cluster collegati a GKE 1.21.* o 1.22.*.
In questo modo puoi eseguire l'upgrade del cluster alla versione secondaria successiva prima di eseguire l'upgrade dei cluster GKE allegati.
Collega il cluster
Per collegare il cluster conforme alla CNCF a Google Cloud Fleet Management, esegui questi comandi:
Assicurati che il file kubeconfig contenga una voce per il cluster che vuoi collegare. Le istruzioni specifiche variano in base alla distribuzione.
Esegui questo comando per estrarre il contesto kubeconfig del cluster e archiviarlo nella variabile di ambiente
KUBECONFIG_CONTEXT:KUBECONFIG_CONTEXT=$(kubectl config current-context)Il comando per registrare il cluster varia leggermente a seconda che il cluster abbia un emittente OIDC pubblico o privato. Scegli la scheda che si applica al tuo cluster:
Emittente OIDC privato
Utilizza il comando
gcloud container attached clusters registerper registrare il cluster:gcloud container attached clusters register CLUSTER_NAME \ --location=GOOGLE_CLOUD_REGION \ --fleet-project=PROJECT_NUMBER \ --platform-version=PLATFORM_VERSION \ --distribution=generic \ --context=KUBECONFIG_CONTEXT \ --has-private-issuer \ --kubeconfig=KUBECONFIG_PATHSostituisci quanto segue:
- CLUSTER_NAME: il nome del tuo cluster. Il CLUSTER_NAME deve essere conforme allo standard RFC 1123 per i nomi delle etichette.
- GOOGLE_CLOUD_REGION: la Google Cloud regione da cui amministrare il cluster
- PROJECT_NUMBER: il progetto host del parco risorse a cui registrare il cluster
- PLATFORM_VERSION: la versione della piattaforma da utilizzare per il cluster
- KUBECONFIG_CONTEXT: il contesto nel file kubeconfig per accedere al cluster
- KUBECONFIG_PATH: il percorso del file kubeconfig
Emittente OIDC pubblico
Recupera l'URL dell'emittente OIDC del cluster e salvalo per utilizzarlo in un secondo momento. Le istruzioni specifiche variano in base alla distribuzione.
Esegui questo comando per estrarre il contesto kubeconfig del cluster e archiviarlo nella variabile di ambiente
KUBECONFIG_CONTEXT:KUBECONFIG_CONTEXT=$(kubectl config current-context)Utilizza il comando
gcloud container attached clusters registerper registrare il cluster:gcloud container attached clusters register CLUSTER_NAME \ --location=GOOGLE_CLOUD_REGION \ --fleet-project=PROJECT_NUMBER \ --platform-version=PLATFORM_VERSION \ --distribution=generic \ --issuer-url=ISSUER_URL \ --context=KUBECONFIG_CONTEXT \ --kubeconfig=KUBECONFIG_PATHSostituisci quanto segue:
- CLUSTER_NAME: il nome del tuo cluster. Il CLUSTER_NAME deve essere conforme allo standard RFC 1123 per i nomi delle etichette.
- GOOGLE_CLOUD_REGION: la Google Cloud regione in cui amministrare il cluster
- PROJECT_NUMBER: il progetto host del parco risorse in cui verrà registrato il cluster
- PLATFORM_VERSION: la versione dei cluster collegati a GKE da utilizzare per il cluster
- ISSUER_URL: l'URL dell'emittente recuperato in precedenza
- KUBECONFIG_CONTEXT: il contesto in kubeconfig per accedere al cluster, come estratto in precedenza
- KUBECONFIG_PATH: il percorso del file kubeconfig
Autorizza Cloud Logging / Cloud Monitoring
Affinché i cluster GKE collegati possano creare e caricare log e metriche di sistema suGoogle Cloud, devono essere autorizzati.
Per autorizzare l'identità del workload Kubernetes gke-system/gke-telemetry-agent
a scrivere log in Google Cloud Logging e metriche in Google Cloud Monitoring,
esegui questo comando:
gcloud projects add-iam-policy-binding GOOGLE_PROJECT_ID \
--member="serviceAccount:GOOGLE_PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
--role=roles/gkemulticloud.telemetryWriter
Sostituisci GOOGLE_PROJECT_ID con l'ID progetto Google Cloud del cluster.
Questo binding IAM concede l'accesso a tutti i cluster nel progetto Google Cloud project per caricare log e metriche. Devi eseguirlo solo dopo aver creato il primo cluster per il progetto.
L'aggiunta di questo binding IAM non andrà a buon fine a meno che non sia stato creato almeno un cluster nel tuo progetto Google Cloud . Questo perché il pool di identità dei workload a cui fa riferimento (GOOGLE_PROJECT_ID.svc.id.goog) non viene sottoposto a provisioning fino alla creazione del cluster.