Con i cluster collegati a GKE, puoi portare i tuoi cluster Kubernetes esistenti, che siano ospitati su AWS, Azure o altrove, nella dashboard della versione Google Kubernetes Engine (GKE) Enterprise per una gestione centralizzata. Ciò include la possibilità di collegare qualsiasi cluster Kubernetes conforme a CNCF.
Cluster Kubernetes supportati
Puoi aggiungere al tuo parco risorse qualsiasi cluster Kubernetes conforme con nodi x86 e visualizzarlo nella console Google Cloud insieme ai cluster GKE.
Anche se Google non verifica ogni distribuzione Kubernetes per la completa compatibilità delle funzionalità, eventuali incompatibilità rilevate sono documentate qui. Per ulteriori dettagli e assistenza per la risoluzione dei problemi, consulta Assistenza per l'upgrade e la versione di Google Kubernetes Engine (GKE) Enterprise.
Prerequisiti
Assicurati che il cluster soddisfi i requisiti del cluster.
Quando colleghi il cluster, devi specificare quanto segue:
- Una regione amministrativa Google Cloud supportata
- Una versione della piattaforma
Si tratta di una regione Google Cloud da cui amministrare il cluster collegato. Puoi scegliere qualsiasi regione supportata, ma la best practice prevede di scegliere quella geograficamente più vicina al tuo cluster. Nessun dato utente viene archiviato nella regione amministrativa.
La versione della piattaforma è la versione dei cluster collegati a GKE da installare sul 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 località Google Cloud 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 inferiore a quella di Kubernetes del tuo cluster. Ad esempio, puoi collegare un cluster che esegue Kubernetes v1.22.* con la versione della piattaforma di cluster collegati a GKE versione 1.21.* o 1.22.*.
Questo ti consente di eseguire l'upgrade del cluster alla versione secondaria successiva prima di eseguire l'upgrade dei cluster collegati a GKE.
Collega il cluster
Per collegare il cluster conforme a CNCF alla gestione del parco risorse di Google Cloud, 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 tuo 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 applicabile al tuo cluster:
Emittente OIDC privato
Utilizza il comando
gcloud container attached clusters register
per 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_PATH
Sostituisci quanto segue:
- CLUSTER_NAME: il nome del cluster
- GOOGLE_CLOUD_REGION: la regione Google Cloud da cui amministrare il cluster
- PROJECT_NUMBER: progetto host del parco risorse con cui registrare il cluster
- PLATFORM_VERSION: la versione della piattaforma da utilizzare per il cluster
- KUBECONFIG_CONTEXT: contesto in kubeconfig per accedere al cluster
- KUBECONFIG_PATH: percorso a kubeconfig
Emittente OIDC pubblico
Recupera l'URL emittente OIDC del cluster e salvalo per utilizzarlo in seguito. Le istruzioni specifiche variano in base alla distribuzione.
Esegui questo comando per estrarre il contesto kubeconfig del tuo cluster e archiviarlo nella variabile di ambiente
KUBECONFIG_CONTEXT
:KUBECONFIG_CONTEXT=$(kubectl config current-context)
Utilizza il comando
gcloud container attached clusters register
per 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_PATH
Sostituisci quanto segue:
- CLUSTER_NAME: il nome del cluster
- GOOGLE_CLOUD_REGION: la regione Google Cloud per gestire 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: contesto in kubeconfig per accedere al cluster, come estratto in precedenza
- KUBECONFIG_PATH: percorso a kubeconfig
Autorizza Cloud Logging / Cloud Monitoring
Per poter creare e caricare log di sistema e metriche in Google Cloud, i cluster collegati a GKE devono essere autorizzati.
Per autorizzare l'identità del carico di lavoro 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.
Questa associazione IAM concede a tutti i cluster nel progetto del progetto Google Cloud l'accesso per caricare log e metriche. Devi eseguirlo solo dopo aver creato il primo cluster per il progetto.
L'aggiunta di questa associazione IAM non riuscirà, a meno che non sia stato creato almeno un cluster nel tuo progetto Google Cloud. Questo perché non viene eseguito il provisioning del pool di identità per i carichi di lavoro a cui fa riferimento (GOOGLE_PROJECT_ID.svc.id.goog
) fino alla creazione del cluster.