Upgrade dei cluster Anthos su AWS

Per eseguire l'upgrade dei tuoi cluster Anthos su AWS (GKE su AWS), esegui prima l'upgrade del servizio di gestione e poi esegui l'upgrade dei cluster utente.

Servizio di gestione

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

Prima di iniziare

Per connetterti ai tuoi cluster Anthos su risorse AWS, segui questi passaggi. Seleziona se hai già un VPC AWS (o connessione diretta al tuo VPC) o 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 riga env HTTP_PROXY=http://localhost:8118 dai comandi in questo argomento.

VPC dedicato

Quando crei un servizio di gestione in un VPC dedicato, Cluster Anthos on AWS include un host bastion in una subnet pubblica.

Per collegarti al tuo servizio di gestione, procedi nel seguente modo:

  1. Passa alla directory con la configurazione di Cluster Anthos on AWS. Hai creato questa directory durante l'installazione del servizio di gestione.

    cd anthos-aws

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

    Per aprire un tunnel verso il bastion host, esegui il comando seguente:

    ./bastion-tunnel.sh -N
    

    I messaggi provenienti dal tunnel SSH vengono visualizzati in questa finestra. Quando è tutto pronto per chiudere la connessione, interrompi il processo premendo Ctrl+C o chiudendo la finestra.

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

    cd anthos-aws
  4. Verifica di riuscire a connetterti al cluster con kubectl.

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

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

Eseguire l'upgrade del servizio di gestione

Per eseguire l'upgrade del servizio di gestione, devi scaricare una nuova versione di anthos-gke, modificare anthos-gke.yaml e applicare le modifiche.

Scarica una nuova versione di anthos-gke

La versione più recente dello strumento anthos-gke è aws-1.14.1-gke.0. Per scaricare una nuova versione di anthos-gke, procedi nel seguente modo:

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

  1. Scarica il programma binario da Cloud Storage.

    Linux

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

    macOS

    gsutil 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, segui questi passaggi:

  1. Passa alla directory con la configurazione di Cluster Anthos on AWS. Hai creato questa directory durante l'installazione del servizio di gestione.
    cd anthos-aws
  2. Apri il tuo 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 inizia a eseguire l'upgrade del servizio di gestione. Il completamento dell'upgrade potrebbe richiedere fino a dieci minuti.

Cluster utenti

Nelle sezioni seguenti eseguirai l'upgrade dei tuoi cluster utente.

Prima di iniziare

Prima di poter completare questi passaggi, devi avere un servizio di gestione e almeno un cluster utente.

Versioni di Kubernetes supportate

I cluster Anthos su AWS aws-1.14.1-gke.0 supportano le seguenti versioni di Kubernetes:

  • 1.23.15-gke.2000
  • 1,24,9-gke.2100
  • 1,25,5-gke.2100

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

Upgrade dei componenti

Questa sezione descrive l'upgrade dei pool AWSCluster e AWSNodePools.

Cluster AWS

Puoi aggiornare un AWSCluster a una nuova versione di Cluster Anthos on AWS senza aggiornare i tuoi AWSNodePools.

Pool di nodi AWS

Non puoi aggiornare un AWSNodePool a una versione più recente del tuo AWSCluster. Per aggiornare i servizi AWSNodePools, devi prima aggiornare il tuo AWSCluster.

La versione di AWSNodePools deve essere costituita da almeno due versioni secondarie dopo la versione di AWSCluster.

Upgrade di un AWSCluster esistente e di AWSNodePool

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

Cluster AWS

Per eseguire l'upgrade di un AWSCluster, procedi nel seguente modo:

  1. Dalla directory anthos-aws, utilizza anthos-gke per cambiare il contesto del 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 disponi del file YAML iniziale, puoi utilizzare kubectl edit.

    Modifica YAML

    Se hai seguito le istruzioni nella sezione Creazione di un cluster utente, il file YAML è denominato cluster-0.yaml. Apri il file in un editor di testo.

    Modifica kubectl

    Per utilizzare kubectl edit per modificare il tuo AWSCluster, esegui questo 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 questo comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Aggiorna il campo spec.controlPlane.version a una nuova versione dei cluster Anthos 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 ti interessa. La versione di Kubernetes supportata più recente è 1.25.5-gke.2100.

  4. Salva il file. Se utilizzi kubectl edit, kubectl applicherà automaticamente le modifiche. Se modifichi il file YAML, applicalo al servizio di gestione con il comando seguente:

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

    Il servizio di gestione aggiorna AWSCluster.

Pool di nodi AWSNode

Per eseguire l'upgrade di un AWSNodePool, segui questi passaggi:

  1. Dalla directory anthos-aws, utilizza anthos-gke per cambiare il contesto del 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 nella sezione Creazione di un cluster utente, il nome di questo file è 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 ti interessa. La versione di 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 il nodo AWSNodePool un nodo alla volta. Prima dell'arresto di un nodo, i pod in esecuzione su quel nodo ricevono un valore 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 tuo servizio di gestione.

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

L'output include nome, stato, età, versione ed endpoint di ogni cluster. Ad esempio, il seguente output include un elemento 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 è completo quando è eseguito il provisioning dello STATO dei tuoi cluster.