Per collegare un cluster, devi registrarlo Google Cloud in Google Cloud Fleet Management e installarvi il software dei cluster GKE collegati.
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, svolgi i seguenti passaggi.
Prerequisiti
Assicurati che il cluster soddisfi i requisiti del cluster.
Quando colleghi il cluster, devi specificare quanto segue:
- Una Google Cloud regione amministrativa supportata
- 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 GKE collegati da installare sul cluster. Puoi elencare tutte le versioni supportate eseguendo il seguente 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 alla versione della piattaforma per distinguerla dalla versione Kubernetes. I cluster collegati a GKE utilizzano la stessa convention 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 1.22.* con la versione della piattaforma dei cluster collegati 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 collegati GKE.
Collega il cluster AKS
Per collegare il cluster AKS a Google Cloud Fleet Management, esegui i seguenti comandi:
Assicurati che il file kubeconfig contenga una voce per il cluster che vuoi collegare:
az aks get-credentials -n AKS_CLUSTER_NAME \ -g RESOURCE_GROUP
Esegui questo comando per estrarre il contesto kubeconfig del cluster e memorizzarlo nella variabile di ambiente
KUBECONFIG_CONTEXT
:KUBECONFIG_CONTEXT=$(kubectl config current-context)
Il comando per registrare il cluster varia leggermente a seconda che lo abbia configurato con l'emittente OIDC privato predefinito o con quello pubblico sperimentale. Scegli la scheda che si applica al tuo cluster:
Emittente OIDC privato (valore 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 tuo cluster. Questo nome può essere lo stesso AKS_CLUSTER_NAME utilizzato nel passaggio 1. CLUSTER_NAME deve essere conforme allo standard RFC 1123 per i nomi delle etichette.
- GOOGLE_CLOUD_REGION: la Google Cloud regione da cui 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: il contesto in kubeconfig per accedere al cluster AKS
- KUBECONFIG_PATH: percorso del file 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 cluster.
L'output di questo comando sarà l'URL dell'emittente OIDC. Salva questo valore per utilizzarlo in un secondo momento.
Esegui questo comando per estrarre il contesto kubeconfig del cluster e memorizzarlo 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 tuo cluster. Questo nome può essere lo stesso AKS_CLUSTER_NAME utilizzato nel passaggio 1. CLUSTER_NAME deve essere conforme allo standard RFC 1123 per i nomi delle etichette.
- GOOGLE_CLOUD_REGION: la Google Cloud regione in cui 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: il contesto nel file kubeconfig per accedere al cluster, come estratto in precedenza
- KUBECONFIG_PATH: percorso del file kubeconfig
Autorizza Cloud Logging / Cloud Monitoring
Affinché i cluster collegati a GKE possano creare e caricare log e metriche di sistema su Google Cloud, 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 Google Cloud del progetto del cluster.
Questa associazione IAM concede l'accesso a tutti i cluster del 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 andrà a buon fine a meno che non sia stato creato almeno un cluster nel tuo Google Cloud progetto. 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.