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
- Se si stanno aggiornando i cluster del carico di lavoro distribuiti con il supervisore in vSphere 8, vedere Aggiornamento dei cluster distribuiti dal supervisore (solo vSphere 8) in Creazione e gestione di cluster del carico di lavoro TKG 2.2 con la CLI di Tanzu.
- 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.
- TKG non supporta l'aggiornamento dei cluster che eseguono versioni precedenti di TKr
tiny
. Per aggiornare un cluster a nodo singolo minimo alla versione di TKrtiny
più recente, è necessario eliminare il cluster precedente e crearne uno nuovo. Per informazioni sui TKrtiny
, vedere Cluster a nodo singolo in vSphere.
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.
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
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.25.7, ma i cluster del carico di lavoro eseguono versioni precedenti di Kubernetes.
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
k8s-1-23-16-cluster default running 1/1 1/1 v1.23.16+vmware.1 <none> dev v1.23.16---vmware.1-tkg.1
k8s-1-24-10-cluster default running 1/1 1/1 1.24.10+vmware.1 <none> dev 1.24.10---vmware.1-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.25.7+vmware.1 management dev v1.25.7---vmware.1-tkg.1
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.23.16---vmware.1-tkg.1 v1.23.16+vmware.1-tkg.1 True True
v1.24.11---vmware.1-tkg.1 v1.24.11+vmware.1-tkg.1 True True
v1.25.7---vmware.1-tkg.1 v1.25.7+vmware.1-tkg.1 True True
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 1.22.17---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-16-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 dalla versione v1.23.x alla versione v1.25.x. Il cluster v1.23.x deve essere aggiornato alla versione v1.24.x prima di poter essere aggiornato alla versione v1.25.x.
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
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.25.7
. Ad esempio:
tanzu cluster upgrade k8s-1-24-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
ImportanteIn 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.25.7, specificare --os-name ubuntu
per aggiornare il cluster del carico di lavoro in modo che venga eseguito in 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 dalla versione v1.23.x alla versione v1.25.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-23-16-cluster
dalla versione v1.23.16 alla versione v1.24.11.
tanzu cluster upgrade k8s-1-23-16-cluster --tkr v1.24.11---vmware.1-tkg.1
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
Rigenerare il kubeconfig
di amministrazione:
tanzu cluster kubeconfig get CLUSTER-NAME --admin
In cui CLUSTER-NAME
è il nome del cluster del carico di lavoro.
ImportanteSe non si rinnova
kubeconfig
dopo l'aggiornamento, non sarà possibile accedere al cluster dopo la scadenza.
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
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.
ImportanteSe Prometheus è installato in un cluster del carico di lavoro e si aggiorna il cluster del carico di lavoro a Kubernetes v1.25, è necessario aggiornare Prometheus alla versione
2.37.0+vmware.3-tkg.1
. Le versioni precedenti del pacchetto di Prometheus, ad esempio la versione2.37.0+vmware.1-tkg.1
, non sono compatibili con Kubernetes 1.25.
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.2 con la CLI di Tanzu.