Per aggiornare Tanzu Kubernetes Grid con un cluster di gestione autonomo, è innanzitutto necessario aggiornare il cluster di gestione autonomo. Non è possibile aggiornare i cluster del carico di lavoro finché non si aggiorna il cluster di gestione che li gestisce.
Se si esegue TKG con supervisore vSphere with Tanzu, non eseguire questa procedura. Aggiornare invece il supervisore come parte di vSphere e aggiornare la versione di Kubernetes del supervisore aggiornandone i TKr.
L'aggiornamento del cluster di gestione comporta l'aggiornamento automatico dei pacchetti gestiti automaticamente che esegue.
NotaDopo aver installato la CLI della versione v2.1 ma prima dell'aggiornamento di un cluster di gestione autonomo, tutti i gruppi di comandi della CLI specifici del contesto (
tanzu cluster
,tanzu kubernetes-release
) più tutti i comandi del plug-inmanagement-cluster
ad eccezione ditanzu mc upgrade
etanzu mc create
non sono disponibili e non sono inclusi nell'output--help
della CLI di Tanzu.
I cluster di gestione 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 o ruotarli manualmente come descritto in Rinnovo dei certificati del cluster (MC autonomo) o nell'articolo della Knowledge Base di VMware Come ruotare i certificati in un cluster Tanzu Kubernetes Grid.
Eseguire il comando tanzu login
per visualizzare un elenco interattivo dei cluster di gestione disponibili per l'aggiornamento.
tanzu login
Selezionare il cluster di gestione che si desidera aggiornare. Per ulteriori informazioni, vedere Elenco dei cluster di gestione e modifica del contesto.
Recuperare le credenziali di amministratore del cluster. L'alias della CLI di Tanzu mc
è l'abbreviazione di management-cluster
.
tanzu mc kubeconfig get --admin
Connettere kubectl
al cluster di gestione.
kubectl config use-context CLUSTER-NAME-admin@CLUSTER-NAME.
Se il cluster di gestione è 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
Se il cluster di gestione è stato creato originariamente in TKG v1.3 o versioni precedenti, o se non si è sicuri, eseguire le operazioni seguenti. Questi passaggi aggiungono un segreto necessario per aggiornare i cluster di gestione alla loro configurazione basata su pacchetti in TKG v2.1, ma che non era incluso nei cluster di gestione creati prima di TKG v1.4:
Disattivare il flag della funzionalità package-based-cc
per abilitare l'esecuzione di prova della creazione del cluster di gestione legacy:
tanzu config set features.management-cluster.package-based-cc false
Ottenere un manifest di tipo legacy più aggiornato per il cluster di gestione mediante un'esecuzione di prova della creazione del cluster di gestione con il file di configurazione originale. Ad esempio, su vSphere:
tanzu mc create -f mgmt-config.yaml --dry-run > legacy-mgmt.yaml
Do you want to configure vSphere with Tanzu? [y/N]: N
Would you like to deploy a non-integrated Tanzu Kubernetes Grid management cluster on vSphere 7.0? [y/N]: y
Estrarre il segreto -config-values
necessario:
cat legacy-mgmt.yaml | yq 'select(.metadata.name == "MANAGEMENT-CLUSTER-NAME-config-values")' > mgmt-config-secret.yaml
Nel contesto del cluster di gestione, applicare il segreto al cluster di gestione:
kubectl apply -f mgmt-config-secret.yaml
Riattivare il flag della funzionalità package-based-cc
per disabilitare l'esecuzione di prova della creazione del cluster di gestione legacy.
tanzu config set features.management-cluster.package-based-cc true
Eseguire il comando tanzu mc upgrade
e immettere y
per confermare.
NotaDopo aver eseguito questo comando, gli utenti non amministratori non possono accedere ai cluster del carico di lavoro associati finché il riavvio dei pod Pinniped non viene completato.
tanzu mc upgrade
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.24.10, specificare --os-name ubuntu
per aggiornare il cluster di gestione in modo che venga eseguito in una macchina virtuale Ubuntu.
tanzu mc upgrade --os-name ubuntu
Per ignorare il passaggio di conferma quando si aggiorna un cluster, specificare l'opzione --yes
.
tanzu mc upgrade --yes
Il processo di aggiornamento aggiorna innanzitutto i Cluster API Provider per vSphere, Amazon Web Services (AWS) o Azure in esecuzione nel cluster di gestione. Quindi, aggiorna la versione di Kubernetes in tutti i nodi del piano di controllo e i nodi worker del cluster di gestione.
ImportanteDurante l'aggiornamento di un cluster di gestione, non eseguire i comandi
tanzu cluster
otanzu mc
nei confronti di tale cluster o dei cluster del carico di lavoro che gestisce, ad esempio da un'altra macchina di bootstrap o da una finestra shell.
Se si verifica il timeout dell'aggiornamento prima del completamento, eseguire nuovamente tanzu mc upgrade
e specificare l'opzione --timeout
impostando un valore maggiore del valore predefinito di 30 minuti.
tanzu mc upgrade --timeout 45m0s
NotaDopo aver installato la CLI della versione v2.1 ma prima dell'aggiornamento di un cluster di gestione, tutti i gruppi di comandi della CLI specifici del contesto (
tanzu cluster
,tanzu kubernetes-release
) più tutti i comandi del plug-inmanagement-cluster
ad eccezione ditanzu mc upgrade
etanzu mc create
non sono disponibili e non sono inclusi nell'output--help
della CLI di Tanzu.
Quando l'aggiornamento viene completato, eseguire nuovamente il comando tanzu cluster list
con le opzioni --include-management-cluster -A
per verificare che il cluster di gestione sia stato aggiornato.
tanzu cluster list --include-management-cluster -A
Il cluster di gestione esegue ora la nuova versione di Kubernetes, ma i cluster del carico di lavoro eseguono ancora versioni precedenti di Kubernetes.
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLA 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
Rigenerare il kubeconfig
di amministrazione:
tanzu management-cluster kubeconfig get --admin
Un output di esempio del comando è:
Credentials of cluster 'mgmt' have been saved
You can now access the cluster by running 'kubectl config use-context mgmt-admin@mgmt'
ImportanteSe non si rinnova
kubeconfig
dopo l'aggiornamento, non sarà possibile accedere al cluster dopo la scadenza.
Ora è possibile:
Aggiornare i cluster del carico di lavoro gestiti da questo cluster di gestione.
Creare nuovi cluster del carico di lavoro. Per impostazione predefinita, tutti i nuovi cluster distribuiti con questo cluster di gestione eseguiranno la nuova versione predefinita di Kubernetes. Se necessario, è tuttavia possibile utilizzare il comando tanzu cluster create
con l'opzione --tkr
per distribuire nuovi cluster che eseguono versioni diverse di Kubernetes. Per ulteriori informazioni, vedere Più versioni di Kubernetes.