Upgrade di GKE su AWS

Per eseguire l'upgrade dell'ambiente GKE su AWS, esegui prima l'upgrade del servizio di gestione e poi dei cluster utente.

Servizio di gestione

Nelle sezioni seguenti esegui l'upgrade del servizio di gestione.

Prima di iniziare

Per connetterti alle risorse GKE su AWS, segui questi passaggi. Seleziona se hai già un VPC AWS (o una connessione diretta al tuo VPC) o se hai creato un VPC dedicato durante la creazione del servizio di gestione.

VPC esistente

Se hai una connessione diretta o VPN a un VPC esistente, ometti la rigaenv HTTP_PROXY=http://localhost:8118 dai comandi in questo argomento.

VPC dedicato

Quando crei un servizio di gestione in una VPC dedicata, GKE su AWS include un host bastion in una subnet pubblica.

Per connetterti al servizio di gestione:

  1. Passa alla directory con la configurazione di GKE su AWS. Hai creato questa directory durante la installazione del servizio di gestione.

    cd anthos-aws

  2. Per aprire il tunnel, esegui lo script bastion-tunnel.sh. Il tunnel inoltra a localhost:8118.

    Per aprire un tunnel per l'bastion host, esegui il seguente comando:

    ./bastion-tunnel.sh -N
    

    I messaggi del tunnel SSH vengono visualizzati in questa finestra. Quando è tutto pronto, chiudi la connessione interrompendo il processo con Ctrl+C o chiudendo la finestra.

  3. Apri un nuovo terminale e passa alla directory anthos-aws.

    cd anthos-aws
  4. Verifica di essere in grado di connetterti al cluster con kubectl.

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    L'output include l'URL del server dell'API del servizio di gestione.

Eseguire l'upgrade del servizio di gestione

Per eseguire l'upgrade del servizio di gestione, scarica una nuova versione di anthos-gke, modifica il tuo anthos-gke.yaml e poi applica le modifiche.

Scarica una nuova versione di anthos-gke

L'ultima versione dello strumento anthos-gke è aws-1.14.1-gke.0. Per scaricare una nuova versione di anthos-gke, svolgi i seguenti passaggi:

Lo strumento a riga di comando anthos-gke supporta solo Linux e macOS.

  1. Scarica il file binario da Cloud Storage.

    Linux

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
    

    macOS

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
    
  2. Aggiorna le autorizzazioni di anthos-gke e copiale in /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. Verifica che la versione sia aws-1.14.1-gke.0

    anthos-gke version
    

Eseguire l'upgrade del servizio di gestione

Per eseguire l'upgrade del cluster:

  1. Passa alla directory con la configurazione di GKE su AWS. Hai creato questa directory durante la installazione del servizio di gestione.
    cd anthos-aws
  2. Apri il file anthos-gke.yaml in un editor di testo. Modifica il valore di spec.version in aws-1.14.1-gke.0.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
     name: management
    spec:
     version: aws-1.14.1-gke.0
     region: aws-region
     ...
    
  3. Esegui anthos-gke aws management init per convalidare l'oggetto AWSManagementService e aggiornare il file anthos-gke.status.yaml.

    anthos-gke aws management init
    
  4. Esegui anthos-gke aws management apply per aggiornare il servizio di gestione su AWS.

    anthos-gke aws management apply
    

    Il comando anthos-gke avvia l'upgrade del servizio di gestione. Il completamento dell'upgrade potrebbe richiedere fino a dieci minuti.

Cluster utenti

Nelle sezioni seguenti esegui l'upgrade dei cluster utente.

Prima di iniziare

Prima di poter completare questi passaggi, devi disporre di un servizio di gestione e di almeno un cluster di utenti.

Versioni di Kubernetes supportate

GKE su AWS aws-1.14.1-gke.0 supporta le seguenti versioni di Kubernetes:

  • 1.23.15-gke.2000
  • 1.24.9-gke.2100
  • 1.25.5-gke.2100

Per informazioni sulle versioni supportate precedenti, consulta le note di rilascio.

Upgrade dei componenti

Questa sezione descrive l'upgrade di AWSClusters e AWSNodePools.

AWSCluster

Puoi aggiornare un AWSCluster a una nuova versione di GKE su AWS senza aggiornare i tuoi AWSNodePools.

AWSNodePools

Non puoi aggiornare un AWSNodePool a una versione più recente del tuo AWSCluster. Per aggiornare gli AWSNodePools, devi prima aggiornare l'AWSCluster.

La versione di AWSNodePools deve essere di almeno due versioni secondarie precedente rispetto alla versione di AWSCluster.

Esegui l'upgrade di AWSCluster e AWSNodePool esistenti

Per eseguire l'upgrade del cluster, aggiorna il campo version degli oggetti AWSCluster e AWSNodePool nel servizio di gestione.

AWSCluster

Per eseguire l'upgrade di un AWSCluster, svolgi i seguenti passaggi:

  1. Dalla directory anthos-aws, utilizza anthos-gke per cambiare contesto e passare al servizio di gestione.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Apri il file YAML che ha creato il tuo AWSCluster in un editor di testo. Se non hai il file YAML iniziale, puoi utilizzare kubectl edit.

    Modifica YAML

    Se hai seguito le istruzioni riportate in Creazione di un cluster utente, il file YAML si chiama cluster-0.yaml. Apri questo file in un editor di testo.

    kubectl edit

    Per utilizzare kubectl edit per modificare AWSCluster, esegui il seguente comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    Sostituisci cluster-name con il tuo AWSCluster. Ad esempio, per modificare il cluster predefinito cluster-0, esegui il seguente comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Aggiorna il campo spec.controlPlane.version a una nuova versione di GKE su AWS. La versione più recente è 1.25.5-gke.2100.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    metadata:
      name: cluster-0
    spec:
      region: us-east-1
      controlPlane:
        version: gke_version
        instanceType: t3.medium
      ...
    

    Sostituisci gke-version con la versione di Kubernetes che preferisci. La versione Kubernetes supportata più recente è 1.25.5-gke.2100.

  4. Salva il file. Se utilizzi kubectl edit, kubectl applica le modifiche automaticamente. Se stai modificando il file YAML, applicalo al servizio di gestione con il seguente comando:

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl apply -f cluster-0.yaml
    

    Il servizio di gestione aggiorna quindi AWSCluster.

AWSNodePool

Per eseguire l'upgrade di un AWSNodePool, svolgi i seguenti passaggi:

  1. Dalla directory anthos-aws, utilizza anthos-gke per cambiare contesto e passare al servizio di gestione.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Apri il file YAML che ha creato il tuo AWSNodePool in un editor di testo. Se hai seguito le istruzioni riportate in Creazione di un cluster utente, questo file si chiama cluster-0.yaml.

  3. Aggiorna il valore di spec.version nelle risorse AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    metadata:
      name: cluster-0-pool-0
    spec:
      clusterName: cluster-0
      region: us-east-1
      version: gke-version
      ...
    

    Sostituisci gke-version con la versione di Kubernetes che preferisci. La versione Kubernetes supportata più recente è 1.25.5-gke.2100.

  4. Applica la nuova configurazione al servizio di gestione con kubectl.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    

    Il servizio di gestione aggiorna quindi il tuo AWSNodePool un nodo alla volta. Prima che un nodo venga arrestato, i pod in esecuzione su quel nodo ricevono un SIGTERM. Se un pod non si arresta dopo un periodo di tolleranza, riceve un SIGKILL.

Visualizza stato

Per ottenere lo stato di un upgrade, esegui kubectl get AWSClusters sul servizio di gestione.

env HTTPS_PROXY=http://localhost:8118 \
    kubectl get AWSClusters

L'output include il nome, lo stato, la versione, l'età e l'endpoint di ogni cluster. Ad esempio, l'output seguente include un AWSCluster denominato cluster-0.

NAME        STATE          AGE     VERSION         ENDPOINT
cluster-0   Upgrading   2m41s      1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com

L'upgrade del cluster utente è completato quando lo STATUS dei cluster è Provisioned.