Aggiornamento dei cluster del carico di lavoro

Questo argomento spiega come aggiornare i cluster del carico di lavoro di Tanzu Kubernetes Grid (TKG). Per TKG con un cluster di gestione autonomo, è innanzitutto necessario aggiornare il cluster di gestione che gestisce i cluster del carico di lavoro.

Importante

I cluster di gestione autonomi e i cluster del carico di lavoro utilizzano certificati client per eseguire l'autenticazione dei client. Questi certificati sono validi per un anno. Per rinnovarli, aggiornare i cluster almeno una volta all'anno.

Prerequisiti

Prerequisiti dell'infrastruttura

vSphere
Se si stanno aggiornando cluster in esecuzione in vSphere, prima di poter aggiornare i cluster a una versione non predefinita di Kubernetes per la versione di Tanzu Kubernetes Grid, devono essere disponibili in vSphere gli OVA dei modelli di immagine di base appropriati come modelli di macchine virtuali. Per informazioni sull'importazione dei file OVA in vSphere, vedere Preparazione per l'aggiornamento dei cluster vSphere.
AWS
Se si stanno aggiornando cluster in esecuzione su Amazon Web Services (AWS), le immagini delle macchine Amazon (AMI) di Amazon Linux 2 che includono le versioni di Kubernetes supportate sono disponibili pubblicamente per tutti gli utenti di AWS, in tutte le regioni di AWS supportate. Tanzu Kubernetes Grid utilizza automaticamente l'AMI appropriata per la versione di Kubernetes specificata durante l'aggiornamento.
Azure
Se si stanno aggiornando cluster in esecuzione in Azure, assicurarsi di aver completato i passaggi in Preparazione per l'aggiornamento dei cluster in Azure.


Procedura

Il processo di aggiornamento consente di aggiornare la versione di Kubernetes in tutti i nodi del piano di controllo e in tutti i nodi worker dei cluster del carico di lavoro.

  1. Per visualizzare un elenco interattivo dei cluster di gestione disponibili e selezionare il cluster di gestione che gestisce i cluster che si desidera aggiornare, eseguire il comando tanzu login:

    tanzu login
    
  2. Per elencare i cluster del carico di lavoro, eseguire:

    tanzu cluster list --include-management-cluster -A
    

    Il comando tanzu cluster list con le opzioni --include-management-cluster -A mostra la versione di Kubernetes in esecuzione nel cluster di gestione e tutti i cluster che gestisce. In questo esempio, è possibile verificare che il cluster di gestione è già stato aggiornato alla versione v1.24.10, ma i cluster del carico di lavoro eseguono versioni precedenti di Kubernetes.

    NAME                 NAMESPACE   STATUS    CONTROLPLANE  WORKERS  KUBERNETES         ROLES       PLAN  TKR
    k8s-1-22-13-cluster  default     running   1/1           1/1      v1.22.13+vmware.1   <none>      dev   v1.22.13---vmware.1-tkg.1
    k8s-1-23-10-cluster  default     running   1/1           1/1      v1.23.10+vmware.1  <none>      dev   v1.23.10---vmware.1-tkg.1
    mgmt-cluster         tkg-system  running   1/1           1/1      v1.24.10+vmware.1  management  dev   v1.24.10---vmware.1-tkg.1
    
  3. Per individuare le versioni di Kubernetes rese disponibili da un cluster di gestione, eseguire il comando tanzu kubernetes-release get.

    tanzu kubernetes-release get
    

    L'output elenca tutte le versioni di Kubernetes che è possibile utilizzare per distribuire i cluster, con le note seguenti:

    • COMPATIBLE: Il cluster di gestione attuale può distribuire cluster del carico di lavoro con questa versione di Tanzu Kubernetes (tkr).
    • UPDATES AVAILABLE: Questo tkr non è il più recente nella riga della versione di Kubernetes. Tutti i cluster del carico di lavoro che eseguono questa versione di tkr possono essere aggiornati alle versioni più recenti.

    Ad esempio:

    NAME                       VERSION                  COMPATIBLE  ACTIVE  UPDATES AVAILABLE
    v1.22.17---vmware.1-tkg.1  v1.22.17+vmware.1-tkg.1  True        True
    v1.23.16---vmware.1-tkg.1  v1.23.16+vmware.1-tkg.1  True        True
    v1.24.10---vmware.1-tkg.1  v1.24.10+vmware.1-tkg.1  True        True
    
  4. Per individuare le versioni di tkr più recenti a cui è possibile aggiornare un cluster del carico di lavoro che esegue una versione precedente di tkr, eseguire il comando tanzu kubernetes-release available-upgrades get specificando la versione corrente di tkr:

    tanzu kubernetes-release available-upgrades get v1.23.10---vmware.1-tkg.1
    

    Questo comando elenca tutte le versioni di Kubernetes disponibili a cui è possibile aggiornare i cluster di che eseguono la versione specificata.

    È inoltre possibile individuare le versioni di tkr disponibili per un cluster del carico di lavoro specifico specificando il nome del cluster nel comando tanzu cluster available-upgrades get:

    tanzu cluster available-upgrades get k8s-1-23-10-cluster
    

    Questo comando elenca tutte le versioni di Kubernetes compatibili con il cluster specificato.

    Non è possibile ignorare le versioni secondarie durante l'aggiornamento della versione di tkr. Ad esempio, non è possibile aggiornare un cluster direttamente da v1.22.x a v1.24.x. È necessario aggiornare un cluster v1.22.x a v1.23.x prima di aggiornare il cluster a v1.24.x.

  5. Se il cluster è in esecuzione in Azure, impostare la variabile di ambiente AZURE_CLIENT_SECRET prima di aggiornare il cluster:

    export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
    
  6. Eseguire il comando tanzu cluster upgrade CLUSTER-NAME e immettere y per confermare. Per ignorare il passaggio di conferma, specificare l'opzione --yes.

    Per aggiornare il cluster alla versione predefinita di Kubernetes per questa versione di Tanzu Kubernetes Grid, eseguire il comando tanzu cluster upgrade senza alcuna opzione. In questa versione, la versione predefinita è v1.24.10. Ad esempio:

    tanzu cluster upgrade k8s-1-23-10-cluster
    

    Se il cluster non è in esecuzione nello spazio dei nomi default, specificare l'opzione --namespace:

    tanzu cluster upgrade CLUSTER-NAME --namespace NAMESPACE-NAME
    

    Se si verifica il timeout di un aggiornamento prima del completamento, eseguire nuovamente tanzu cluster upgrade e specificare l'opzione --timeout impostando un valore maggiore del valore predefinito di 30 minuti.

    tanzu cluster upgrade CLUSTER-NAME --timeout 45m0s
    
    Importante

    In alcuni casi, le operazioni su Azure impiegano più tempo rispetto ad altre piattaforme. Se si stanno aggiornando cluster in Azure, impostare di routine l'opzione --timeout per evitare errori.

    Se più immagini di macchine virtuali di base nell'account IaaS hanno la stessa versione di Kubernetes a cui si sta eseguendo l'aggiornamento, utilizzare l'opzione --os-name per specificare il sistema operativo desiderato. Per ulteriori informazioni, vedere Selezione di un sistema operativo durante l'aggiornamento del cluster.

    Se ad esempio in vSphere sono stati caricati entrambi i modelli OVA di Photon e Ubuntu con Kubernetes v1.23.16, specificare --os-name ubuntu per aggiornare il cluster del carico di lavoro in modo che venga eseguito su Ubuntu.

    tanzu cluster upgrade CLUSTER-NAME --os-name ubuntu
    

    Dato che non è possibile ignorare le versioni secondarie di tkr, se si tenta di aggiornare un cluster la cui versione è precedente alla versione predefinita di più di una versione secondaria, il comando di aggiornamento non riesce. Ad esempio, non è possibile eseguire l'aggiornamento direttamente da v1.22.x a v1.24.x. Per aggiornare un cluster a una versione di Kubernetes che non sia la versione predefinita per questa versione di Tanzu Kubernetes Grid, specificare l'opzione --tkr con il NAME della versione scelta, come indicato dal precedente tanzu kubernetes-release get. Ad esempio, per aggiornare il cluster k8s-1-22-13-cluster da v1.22.13 a v1.23.16.

    tanzu cluster upgrade k8s-1-22-13-cluster --tkr v1.23.16---vmware.1-tkg.1
    
  7. Al termine dell'aggiornamento, eseguire il comando tanzu cluster list per verificare che il cluster del carico di lavoro sia stato aggiornato.

    tanzu cluster list --include-management-cluster -A
    
  8. Rigenerare il kubeconfig di amministrazione:

    tanzu cluster kubeconfig get CLUSTER-NAME --admin
    

    In cui CLUSTER-NAME è il nome del cluster del carico di lavoro.

    Importante

    Se non si rinnova kubeconfig dopo l'aggiornamento, non sarà possibile accedere al cluster dopo la scadenza.

  9. Se si utilizza un provider di identità LDAP o OIDC, verificare che sia possibile eseguire l'autenticazione nel cluster con kubectl. Ad esempio:

    kubectl get pods -A --kubeconfig my-cluster-credentials
    
  10. Aggiornare tutti i pacchetti gestiti dalla CLI come Contour, Fluent Bit o Prometheus in esecuzione nei cluster del carico di lavoro. Per ulteriori informazioni sull'aggiornamento dei pacchetti gestiti dalla CLI, vedere Aggiornamento di un pacchetto.

Passaggi successivi

Ora è possibile continuare a utilizzare la CLI di Tanzu per gestire i cluster. Per ulteriori informazioni, vedere Creazione e gestione di cluster del carico di lavoro TKG 2.1 con la CLI di Tanzu.

check-circle-line exclamation-circle-line close-line
Scroll to top icon