vSphere with Tanzu supporta gli aggiornamenti in sequenza per i Cluster supervisori e i cluster di Tanzu Kubernetes e per l'infrastruttura che supporta tali cluster.

Come aggiornare i cluster di vSphere with Tanzu

vSphere with Tanzu utilizza un modello di aggiornamento in sequenza per i Cluster supervisori e i cluster di Tanzu Kubernetes. Il modello di aggiornamento in sequenza garantisce un tempo di inattività minimo per i carichi di lavoro del cluster durante il processo di aggiornamento. Gli aggiornamenti in sequenza includono l'aggiornamento delle versioni del software Kubernetes e l'infrastruttura e i servizi che supportano i cluster di Kubernetes, come le configurazioni e le risorse delle macchine virtuali, i servizi e gli spazi dei nomi di vSphere, nonché le risorse personalizzate.

Affinché l'aggiornamento venga eseguito correttamente, la configurazione deve soddisfare diversi requisiti di compatibilità. Il sistema applica quindi le condizioni di ricontrollo per assicurarsi che i cluster siano pronti per gli aggiornamenti e supporta il rollback se l'upgrade del cluster non riesce.
Nota: Un aggiornamento di vSphere with Tanzu implica più di un semplice upgrade della versione del software Kubernetes. Per tale processo si utilizza il termine "aggiornamento" anziché il termine "upgrade", che è una forma limitata di aggiornamento che incrementa la versione del software.

Dipendenza tra gli aggiornamenti del Cluster supervisore e gli aggiornamenti dei cluster di Tanzu Kubernetes

Il Cluster supervisore e i cluster di Tanzu Kubernetes devono essere aggiornati separatamente. Si tenga tuttavia presente che ci sono dipendenze tra i due.

È probabile che l'aggiornamento di un Cluster supervisore attivi un aggiornamento in sequenza dei cluster di Tanzu Kubernetes distribuiti in tale cluster. Vedere Aggiornamento dei Cluster supervisore eseguendo un aggiornamento degli spazi dei nomi vSphere.

Potrebbe essere necessario aggiornare uno o più cluster di Tanzu Kubernetes prima di aggiornare un Cluster supervisore se il cluster di Tanzu Kubernetes non è conforme alla versione del Cluster supervisore di destinazione. Vedere Elenco di Release di Tanzu Kubernetes.

Informazioni sugli aggiornamenti di Cluster supervisore

Quando si avvia un aggiornamento per un Cluster supervisore, il sistema crea un nuovo nodo del piano di controllo e lo unisce al piano di controllo esistente. L'inventario di vSphere mostra quattro nodi del piano di controllo durante questa fase dell'aggiornamento, perché il sistema aggiunge un nuovo nodo aggiornato e quindi rimuove il vecchio nodo obsoleto. Gli oggetti vengono migrati da uno dei vecchi nodi del piano di controllo a quello nuovo e il vecchio nodo del piano di controllo viene rimosso. Questo processo viene ripetuto per ogni singolo nodo finché tutti i nodi del piano di controllo non vengono aggiornati. Una volta aggiornato il piano di controllo, i nodi worker vengono aggiornati in modo simile. I nodi worker sono gli host ESXi e i processi Spherelet in ogni host ESXi vengono aggiornati uno alla volta.

È possibile scegliere tra i seguenti aggiornamenti:
  • Aggiornamento degli spazi dei nomi supervisore.
  • Aggiornamento di tutto, incluse le versioni di VMware e Kubernetes.
È possibile utilizzare il workflow di aggiornamento degli spazi dei nomi di vSphere per aggiornare la versione di Kubernetes che il cluster supervisore esegue, ad esempio da Kubernetes 1.16.7 a Kubernetes 1.17.4, e l'infrastruttura che supporta i cluster di Kubernetes. Questo tipo di aggiornamento è più frequente e viene utilizzato per stare al passo con la frequenza delle versioni di Kubernetes. Di seguito è disponibile la sequenza di aggiornamento degli spazi dei nomi di vSphere.
  1. Aggiornare vCenter Server.
  2. Eseguire un aggiornamento degli spazi dei nomi di vSphere (incluso l'upgrade di Kubernetes).

Per eseguire un aggiornamento degli spazi dei nomi di vSphere, vedere Aggiornamento dei Cluster supervisore eseguendo un aggiornamento degli spazi dei nomi vSphere.

È possibile utilizzare il workflow per l'aggiornamento di tutti gli elementi per aggiornare tutti i componenti di vSphere with Tanzu. Questo tipo di aggiornamento è necessario quando si aggiornano le versioni principali, ad esempio da NSX-T 3.0 a 3.X e da vSphere 7.0 a 7.X. Questo workflow di aggiornamento non è frequente perché viene eseguito quando sono presenti nuove versioni dei prodotti VMware. Questa è la sequenza del workflow per l'aggiornamento di tutti gli elementi:
  1. Upgrade di NSX-T Data Center.
  2. Aggiornare vCenter Server.
  3. Aggiornamento di vSphere Distributed Switch.
  4. Upgrade degli host ESXi.
  5. Aggiornamento degli spazi dei nomi di vSphere (incluso l'upgrade di Kubernetes).
  6. Aggiornamento di Tanzu Kubernetes.
Il diagramma illustra il workflow generale per gli aggiornamenti di vSphere with Tanzu.

Informazioni sugli aggiornamenti dei cluster di Tanzu Kubernetes

Quando si aggiorna un Cluster supervisore, vengono aggiornati anche i componenti dell'infrastruttura che supportano i cluster di Tanzu Kubernetes distribuiti in tale Cluster supervisore, ad esempio Servizio Tanzu Kubernetes Grid. Ogni aggiornamento dell'infrastruttura può includere aggiornamenti per i servizi che supportano Servizio Tanzu Kubernetes Grid (CNI, CSI, CPU) e le impostazioni di configurazione aggiornate per il piano di controllo e i nodi worker che possono essere applicati ai cluster di Tanzu Kubernetes esistenti. Per assicurarsi che la configurazione soddisfi i requisiti di compatibilità, vSphere with Tanzu esegue verifiche preliminari durante l'aggiornamento in sequenza e applica la conformità.

Per eseguire un aggiornamento in sequenza di un cluster di Tanzu Kubernetes, in genere si aggiorna il manifesto del cluster. Vedere Aggiornamento dei cluster di Tanzu Kubernetes. Si noti, tuttavia, che quando viene eseguito un aggiornamento degli spazi dei nomi vSphere, il sistema propaga immediatamente le configurazioni aggiornate a tutti i cluster Tanzu Kubernetes. Questi aggiornamenti possono attivare automaticamente un aggiornamento in sequenza del piano di controllo e dei nodi di lavoro Tanzu Kubernetes.

Il processo di aggiornamento in sequenza per la sostituzione dei nodi del cluster è simile al processo di aggiornamento in sequenza dei pod in una distribuzione Kubernetes. Sono disponibili due controller distinti responsabili dell'esecuzione di un aggiornamento in sequenza dei cluster Tanzu Kubernetes: il controller dei componenti aggiuntivi e il controller TanzuKubernetesCluster. All'interno di questi due controller sono presenti tre fasi chiave per un aggiornamento in sequenza: aggiornamento dei componenti aggiuntivi, aggiornamento del piano di controllo e aggiornamento dei nodi di lavoro. Queste fasi vengono eseguite in ordine e le verifiche preliminari impediscono l'inizio di un passaggio finché quello precedente non è sufficientemente avanzato. Questi passaggi possono essere ignorati se si stabilisce che non sono necessari. Ad esempio, un aggiornamento può influire solo sui nodi worker e pertanto non richiede alcun aggiornamento dei componenti aggiuntivi o dei piani di controllo.

Durante il processo di aggiornamento, il sistema aggiunge un nuovo nodo di cluster e attende che il nodo passi online con la versione di Kubernetes di destinazione. Il sistema contrassegna quindi il vecchio nodo per l'eliminazione, passa al nodo successivo e ripete il processo. Il vecchio nodo non viene eliminato finché non vengono rimossi tutti i pod. Ad esempio, se un pod viene definito con PodDisruptionBudgets che impedisce lo svuotamento completo di un nodo, il nodo viene isolato ma non viene rimosso finché non sarà possibile eliminare tale pod. Il sistema esegue innanzitutto l'upgrade di tutti i nodi del piano di controllo e quindi dei nodi worker. Durante un aggiornamento, lo stato del cluster di Tanzu Kubernetes diventa "aggiornamento in corso". Al termine del processo di aggiornamento in sequenza, lo stato del cluster di Tanzu Kubernetes diventa "in esecuzione".

I pod in esecuzione in un cluster di Tanzu Kubernetes non gestiti da un controller di replica verranno eliminati durante un upgrade della versione di Kubernetes come parte dello svuotamento del nodo worker durante l'aggiornamento del cluster di Tanzu Kubernetes. Questo succede se l'aggiornamento del cluster viene attivato manualmente o automaticamente da un aggiornamento degli spazi dei nomi di vSphere. I pod non gestiti da un controller di replica includono i pod che non vengono creati come parte di una specifica Deployment o ReplicaSet. Per ulteriori informazioni, fare riferimento all'argomento Pod Lifecycle: Pod lifetime nella documentazione di Kubernetes.