Collegare un cluster significa connetterlo a Google Cloud registrandolo con Google Cloud Fleet Management e installando al suo interno il software dei cluster collegati a GKE.
Puoi collegare un cluster utilizzando gcloud CLI o Terraform. Per scoprire come creare e collegare un cluster AKS utilizzando Terraform, consulta il repository GitHub di esempi per i cluster collegati a GKE.
Per collegare un cluster AKS utilizzando gcloud, esegui questi passaggi.
Prerequisiti
Assicurati che il cluster soddisfi i requisiti del cluster.
Quando colleghi il cluster, devi specificare quanto segue:
- Una regione amministrativa di Google Cloud supportata
- Una versione della piattaforma
La regione amministrativa è una regione Google Cloud da cui amministrare il cluster collegato. Puoi scegliere qualsiasi regione supportata, ma la best practice è scegliere la regione geograficamente più vicina al tuo cluster. I dati degli utenti non vengono archiviati 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 un livello inferiore alla versione Kubernetes del cluster. Ad esempio, puoi collegare un cluster che esegue Kubernetes v1.22.* con la piattaforma di cluster collegati a GKE versione 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 collegati a GKE.
Collega il cluster AKS
Per collegare il cluster AKS alla gestione del parco risorse Google Cloud, esegui questi comandi:
Assicurati che il file kubeconfig contenga una voce per il cluster che vuoi collegare:
az aks get-credentials -n CLUSTER_NAME \ -g RESOURCE_GROUP
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 tu lo abbia configurato con l'emittente OIDC privato predefinito o con quello pubblico sperimentale. Scegli la scheda pertinente al tuo cluster:
Emittente OIDC privato (predefinito)
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=aks \ --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 per gestire il cluster
- PROJECT_NUMBER: il 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 l'accesso al cluster AKS
- KUBECONFIG_PATH: percorso a kubeconfig
Emittente OIDC pubblico
Recupera l'URL dell'emittente OIDC del cluster con il seguente comando:
az aks show -n CLUSTER_NAME \ -g RESOURCE_GROUP \ --query "oidcIssuerProfile.issuerUrl" -otsv
Sostituisci RESOURCE_GROUP con il gruppo di risorse AKS a cui appartiene il tuo cluster.
L'output di questo comando sarà l'URL dell'emittente OIDC. Salva questo valore per utilizzarlo in seguito.
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 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=aks \ --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 l'accesso al cluster, come estratto in precedenza
- KUBECONFIG_PATH: percorso a kubeconfig
Autorizza Cloud Logging / Cloud Monitoring
Affinché i cluster collegati a GKE creino e carichino log di sistema e metriche su Google Cloud, è necessario che siano autorizzati.
Per autorizzare l'identità dei carichi di lavoro Kubernetes gke-system/gke-telemetry-agent
a scrivere i log in Google Cloud Logging e le 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 l'accesso a tutti i cluster nel progetto di progetto Google Cloud 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 progetto Google Cloud. Questo perché il pool di identità per i carichi di lavoro a cui fa riferimento (GOOGLE_PROJECT_ID.svc.id.goog
) non viene eseguito fino alla creazione del cluster.