Esegui la migrazione del cluster AKS

La versione precedente dei cluster collegati a GKE è nota come cluster collegati a GKE (generazione precedente). La migrazione dalla versione precedente dei cluster collegati a GKE alla generazione attuale ti consente di accedere a questa funzionalità, inclusa la gestione del ciclo di vita e la registrazione del parco risorse. La migrazione è un'operazione unidirezionale: una volta eseguita la migrazione alla generazione attuale dei cluster collegati a GKE, non è possibile tornare ai cluster collegati a GKE (generazione precedente).

Norme di numerazione delle versioni

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 collegati a GKE.

Assicurati che Workload Identity sia abilitato

I cluster esistenti dei cluster collegati a GKE (generazione precedente) devono avere Workload Identity abilitato prima di essere migrati alla generazione attuale dei cluster collegati a GKE.

Per determinare se WI è abilitato, esegui il seguente comando e controlla l'output per qualsiasi campo Workload Identity:

gcloud container hub memberships describe MEMBERSHIP_NAME

Se Workload Identity non è abilitato, devi aggiornare l'appartenenza per abilitarlo.

Il comando per aggiornare l'appartenenza del cluster varia leggermente a seconda che tu abbia configurato il cluster con l'emittente OIDC privato predefinito o con quello pubblico sperimentale. Scegli la scheda che si applica al tuo cluster:

Emittente OIDC privato (impostazione predefinita)

gcloud container hub memberships register MEMBERSHIP_NAME \
--context=KUBECONFIG_CONTEXT \
--kubeconfig=KUBECONFIG_PATH \
--enable-workload-identity \
--has-private-issuer

Sostituisci:

  • MEMBERSHIP_NAME: il nome dell'appartenenza del cluster
  • KUBECONFIG_CONTEXT: il contesto nel kubeconfig per accedere al cluster AKS
  • KUBECONFIG_PATH: il 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

L'output di questo comando sarà l'URL dell'emittente OIDC. Salva questo valore per un utilizzo successivo.

  • Aggiorna l'appartenenza:
gcloud container fleet memberships register MEMBERSHIP_NAME \
--context=KUBECONFIG_CONTEXT \
--kubeconfig=KUBECONFIG_PATH \
--enable-workload-identity \
--public-issuer-url=OIDC_URL

Sostituisci:

  • MEMBERSHIP_NAME: il nome dell'appartenenza del cluster
  • KUBECONFIG_CONTEXT: il contesto nel kubeconfig per accedere al cluster AKS
  • KUBECONFIG_PATH: il percorso del file kubeconfig
  • OIDC_URL: l'URL OIDC recuperato in precedenza

Esegui la migrazione del cluster

Per eseguire la migrazione del cluster dai cluster collegati a GKE (generazione precedente) ai cluster collegati a GKE:

  1. Estrai il contesto kubeconfig del cluster e archivialo nella variabile di ambiente KUBECONFIG_CONTEXT:

    KUBECONFIG_CONTEXT=$(kubectl config current-context)
    
  2. Esegui il seguente comando per eseguire la migrazione del cluster alla generazione attuale dei cluster collegati a GKE. Questo comando estrae i dettagli pertinenti della configurazione del cluster, registra il cluster con Google Fleet Management e installa o esegue l'upgrade di qualsiasi software necessario, come l'agente del ciclo di vita, sul cluster.

    gcloud container attached clusters import \
      --location=GOOGLE_CLOUD_REGION \
      --fleet-membership=FLEET_MEMBERSHIP \
      --platform-version=PLATFORM_VERSION \
      --distribution=CLUSTER_DISTRIBUTION \
      --context=KUBECONFIG_CONTEXT \
      [--kubeconfig=KUBECONFIG_PATH]
    

    Sostituisci:

    • GOOGLE_CLOUD_REGION: la Google Cloud località da cui viene amministrato il cluster
    • FLEET_MEMBERSHIP: il designatore di appartenenza completo del cluster registrato (vedi di seguito)
    • PLATFORM_VERSION: la versione dei cluster collegati a GKE a cui vuoi eseguire la migrazione (esempio: v1.22.0-gke.1)
    • CLUSTER_DISTRIBUTION: il tipo di cluster: eks per Elastic Kubernetes Service di AWS, aks per Azure Kubernetes Service o generic per qualsiasi altra distribuzione
    • KUBECONFIG_CONTEXT: il nome del contesto nel file kubeconfig per connetterti al cluster
    • KUBECONFIG_PATH: la posizione del file kubeconfig. Se non specificato, il valore predefinito è ~/.kube/config

    Il designatore di appartenenza è una stringa che identifica in modo univoco il cluster collegato e ha il formato projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP_ID, dove

    • PROJECT_NUMBER è il numero del progetto host del parco risorse. Devi specificare lo stesso numero di progetto a cui appartiene attualmente il cluster

    • MEMBERSHIP_ID: deve essere l'ID di appartenenza al parco risorse del cluster esistente. I cluster collegati a GKE utilizzeranno questo valore come nome del cluster.

Supporto di Workload Identity di Azure

Azure offre il supporto di WI in anteprima pubblica. L'abilitazione di questa funzionalità modifica l'URL dell'emittente OIDC del cluster. Se hai già registrato il cluster con un URL OIDC precedente, non puoi eseguire l'aggiornamento al nuovo URL perché questo campo non è attualmente aggiornabile.

Per risolvere questo problema:

  1. Ricrea il cluster con Workload Identity abilitato.
  2. Collega il cluster AKS.
  3. Esegui la migrazione dei carichi di lavoro al nuovo cluster.
  4. Elimina il vecchio cluster.