Per aggiornare Tanzu Kubernetes Grid (TKG), scaricare e installare la nuova versione della CLI di Tanzu nella macchina utilizzata come macchina di bootstrap. È inoltre necessario scaricare e installare modelli di immagine di base e macchine virtuali, a seconda che si stiano aggiornando i cluster precedentemente distribuiti in vSphere, Amazon Web Services (AWS) o Azure.
Nel percorso di aggiornamento di TKG, v2.4 segue immediatamente v2.3.
Dopo aver installato le nuove versioni dei componenti, utilizzare i comandi CLI tanzu mc upgrade
e tanzu cluster upgrade
per aggiornare i cluster di gestione e i cluster del carico di lavoro.
Le sezioni successive sono i passaggi generali necessari per aggiornare Tanzu Kubernetes Grid. Questa procedura presuppone che si stia eseguendo l'aggiornamento a Tanzu Kubernetes Grid v2.4.0.
Alcuni passaggi sono necessari solo se si esegue un aggiornamento secondario da Tanzu Kubernetes Grid v2.3.x a v2.4.x e non sono necessari se si esegue un aggiornamento della patch da Tanzu Kubernetes Grid v2.4.x a v2.4.y.
ImportanteTanzu Kubernetes Grid v2.4.x è l'ultima versione di TKG che supporta l'aggiornamento dei cluster di gestione TKG autonomi e dei cluster del carico di lavoro TKG esistenti in AWS e Azure. La possibilità di aggiornare i cluster di gestione TKG autonomi e i cluster del carico di lavoro TKG in AWS e Azure verrà rimossa nella versione Tanzu Kubernetes Grid v2.5.
A partire da ora, VMware consiglia di utilizzare Tanzu Mission Control per creare cluster AWS EKS e Azure AKS nativi. Tuttavia, l'aggiornamento dei cluster di gestione TKG autonomi e dei cluster del carico di lavoro TKG esistenti in AWS e Azure rimane completamente supportato per tutte le versioni di TKG fino a TKG v2.4.x incluso.
Per ulteriori informazioni, vedere Deprecazione dei cluster di gestione e del carico di lavoro TKG in AWS e Azure nelle Note di rilascio di VMware Tanzu Kubernetes Grid v2.4.
Prima di eseguire l'aggiornamento a TKG v2.4.x, verificare che la distribuzione corrente sia TKG v2.3.x o una versione v2.4 precedente. Per eseguire l'aggiornamento a TKG v2.4.x da versioni precedenti a v2.3, è innanzitutto necessario eseguire l'aggiornamento a v2.3.x con una versione v2.3.x della CLI Tanzu.
Se non si sa quale versione di TKG è in esecuzione nel cluster di gestione, è possibile estrarre la versione dall'oggetto cluster di gestione.
Eseguire il comando tanzu context use
per visualizzare un elenco interattivo dei cluster di gestione disponibili per l'aggiornamento.
tanzu context use
Selezionare il cluster di gestione che si desidera controllare.
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 MGMT-CLUSTER-NAME-admin@MGMT-CLUSTER-NAME.
È possibile copiare il comando esatto, incluso il nome del contesto del cluster di gestione, dall'output del comando tanzu mc kubeconfig get --admin
eseguito nel passaggio precedente.
Eseguire il comando kubectl get cluster
per estrarre la versione di TKG.
kubectl get cluster MGMT-CLUSTER-NAME -n tkg-system -o yaml | grep TKGVERSION
L'output indicherà la versione di TKG in esecuzione nel cluster di gestione, ad esempio:
TKGVERSION: v2.3.0
Questo passaggio è necessario sia per l'aggiornamento della versione principale da v2.3.x a v2.4.x sia per l'aggiornamento della versione patch da v2.4.x a v2.4.y.
Per scaricare e installare la nuova versione della CLI di Tanzu, eseguire i passaggi seguenti.
Eliminare il file ~/.config/tanzu/tkg/compatibility/tkg-compatibility.yaml
.
Se non si elimina questo file, la nuova versione della CLI di Tanzu continuerà a utilizzare il file Bill of Materials (BOM) per la versione precedente. Se si elimina questo file, la CLI di Tanzu estrae il BOM aggiornato. È necessario eseguire questo passaggio sia quando si esegue l'aggiornamento da 2.3.x a 2.4.x sia quando si esegue l'aggiornamento da 2.4.x a 2.4.y.
Seguire le istruzioni in Installazione della CLI di Tanzu e della CLI di Kubernetes per l'utilizzo con i cluster di gestione autonomi per scaricare e installare la CLI di Tanzu e kubectl
nella macchina in cui attualmente sono eseguiti i comandi tanzu
. Se uno dei cluster di gestione autonomi è configurato per l'utilizzo di un provider di identità LDAP, eseguire i passaggi descritti in (Solo LDAP) Aggiornamento delle impostazioni LDAP dopo aver installato la CLI di Tanzu e prima di aggiornare i plug-in della CLI a Tanzu Kubernetes Grid v2.4.
tanzu version
per verificare che sia installata la versione corretta della CLI di Tanzu. Per un elenco delle versioni della CLI compatibili con Tanzu Kubernetes Grid v2.4, vedere Product Interoperability Matrix.kubectl
, eseguire kubectl version
per verificare che sia installata la versione corretta di kubectl
.Per informazioni sui comandi della CLI di Tanzu e sulle opzioni disponibili, vedere Guida di riferimento ai comandi della CLI di Tanzu.
Prima di poter aggiornare i cluster di gestione e del carico di lavoro, è necessario eseguire passi preparatori a seconda che i cluster siano stati distribuiti in vSphere, AWS o Azure. Questo passaggio è necessario sia per l'aggiornamento della versione principale da v2.3.x a v2.4.x sia per l'aggiornamento della versione patch da v2.4.x a v2.4.y.
Questa procedura presuppone che si stia eseguendo l'aggiornamento a Tanzu Kubernetes Grid v2.4.x.
Scaricare i file OVA di Tanzu Kubernetes Grid più recenti per le righe della versione del sistema operativo e di Kubernetes in esecuzione nei cluster di gestione e del carico di lavoro.
Ad esempio, per immagini Photon v3:
Per le immagini Ubuntu 20.04:
Importanteassicurarsi di scaricare i modelli di immagine di base OVA più recenti se vengono rilasciate patch di sicurezza. È possibile trovare modelli di immagine di base aggiornati che includono patch di sicurezza nella pagina di download del prodotto Tanzu Kubernetes Grid.
Seguire le istruzioni del programma di installazione per distribuire una macchina virtuale da OVA.
tkg-user
, al modello con il ruolo di Tanzu Kubernetes Grid, ad esempio TKG
. Questo utente e questo ruolo sono stati creati in Preparazione della distribuzione dei cluster di gestione in vSphere.Ripetere la procedura per ciascuna versione di Kubernetes per cui è stato scaricato il file OVA.
Compatibilità con VMware Cloud on AWS SDDC
Se si aggiornano i cluster del carico di lavoro distribuiti in VMware Cloud on AWS, verificare che la versione dell'SDDC (Software-Defined Data Center) sottostante utilizzata dalla distribuzione esistente sia compatibile con la versione di Tanzu Kubernetes Grid a cui si sta eseguendo l'aggiornamento.
Per visualizzare la versione di un SDDC, selezionare Visualizza dettagli (View Details) nel riquadro SDDC nella console di VMware Cloud e fare clic sul riquadro Supporto (Support).
Per convalidare la compatibilità con Tanzu Kubernetes Grid, fare riferimento alla Matrice di interoperabilità dei prodotti VMware.
tanzu mc permissions aws set
.
tanzu mc permissions aws set
Questo passaggio è necessario sia per l'aggiornamento della versione principale da v2.3.x a v2.4.x sia per l'aggiornamento della versione patch da v2.4.x a v2.4.y. Per ulteriori informazioni sull'autorizzazione AWS impostata dal comando, vedere Autorizzazioni necessarie per 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.
Per accettare i termini:
Elencare tutte le immagini di macchine virtuali disponibili per Tanzu Kubernetes Grid in Azure Marketplace:
az vm image list --publisher vmware-inc --offer tkg-capi --all
Accettare i termini per la nuova immagine della macchina virtuale predefinita:
az vm image terms accept --urn publisher:offer:sku:version
Ad esempio, per accettare i termini dell'immagine della macchina virtuale predefinita in Tanzu Kubernetes Grid v2.4.0, k8s-1dot27dot5-ubuntu-2004
, eseguire:
az vm image terms accept --urn vmware-inc:tkg-capi:k8s-1dot27dot5-ubuntu-2004:2021.05.17
Se si intende aggiornare uno qualsiasi dei cluster del carico di lavoro a una versione di Kubernetes non predefinita, ad esempio v1.26.8 o v1.25.13, accettare i termini per ogni versione non predefinita che si desidera utilizzare per le macchine virtuali del cluster.
Questo passaggio è necessario solo per TKG con un cluster di gestione autonomo. Se si esegue TKG con un supervisore vSphere with Tanzu, aggiornare il supervisore come parte di vSphere e aggiornare la versione di Kubernetes del supervisore aggiornandone i TKr.
Questo passaggio è necessario sia per l'aggiornamento della versione principale da v2.3.x a v2.4.x sia per l'aggiornamento della versione patch da v2.4.x a v2.4.y.
Per aggiornare Tanzu Kubernetes Grid, è necessario aggiornare tutti i cluster di gestione nella distribuzione. Non è possibile aggiornare i cluster del carico di lavoro finché non si aggiornano i cluster di gestione che li gestiscono.
Eseguire la procedura descritta in Aggiornamento dei cluster di gestione autonomi per aggiornare i cluster di gestione.
Questo passaggio è necessario sia per l'aggiornamento della versione principale da v2.3.x a v2.4.x sia per l'aggiornamento della versione patch da v2.4.x a v2.4.y.
Eseguire la procedura descritta in Aggiornamento dei cluster del carico di lavoro per aggiornare i cluster del carico di lavoro che eseguono i carichi di lavoro.
Dopo aver aggiornato i cluster, è necessario eseguire ulteriori passaggi per completare la procedura di aggiornamento.
Alcuni pacchetti installati per impostazione predefinita nel cluster di gestione, ad esempio cert-manager
, possono essere installati come pacchetti gestiti dalla CLI nei cluster dei carichi di lavoro e dei servizi condivisi. Quando il cluster di gestione viene aggiornato all'ultima versione di Tanzu Kubernetes Grid, i pacchetti predefiniti vengono aggiornati automaticamente.
È possibile eseguire versioni diverse dei pacchetti gestiti dalla CLI in cluster del carico di lavoro diversi. In un cluster del carico di lavoro, è possibile eseguire la versione più recente supportata di un pacchetto gestito dalla CLI o le versioni del pacchetto presenti nelle ultime due versioni di Tanzu Kubernetes Grid installate in precedenza. Ad esempio, se la versione in pacchetto più recente di cert-manager
è la v1.11.1 e le due precedenti installazioni di Tanzu Kubernetes Grid eseguivano cert-manager
v1.10.1 e v1.7.2, è possibile eseguire le versioni v1.11.1, v1.10.1 e v1.7.2 di cert-manager
nei cluster del carico di lavoro.
Per tutti i cluster del carico di lavoro che eseguono versioni dei pacchetti antecedenti a n-2 versioni precedenti installate di Tanzu Kubernetes Grid alle versioni del pacchetto nel cluster di gestione, è necessario aggiornare il repository del pacchetto (vedere Aggiornamento di un repository di pacchetti) e quindi aggiornare il pacchetto nei cluster del carico di lavoro (vedere Aggiornamento di un pacchetto). Se non si aggiorna la versione del pacchetto, non sarà possibile aggiornare la configurazione del pacchetto perché il repository del pacchetto potrebbe non includere una versione precedente a n-2 del 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 come minimo 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.
A seconda che i cluster siano in esecuzione su vSphere, AWS o Azure, è necessario eseguire certe operazioni dopo aver aggiornato i cluster.
Se NSX ALB non è stato abilitato nell'installazione di TKG v2.3, vedere Installazione e configurazione di NSX Advanced Load Balancer per informazioni su come installare NSX ALB.
Se NSX ALB è stato abilitato nell'installazione di TKG v2.3, vedere le Note di rilascio di Tanzu Kubernetes Grid v2.4 per informazioni sulle versioni del controller Avi supportate in questa versione e, se necessario, aggiornare il controller Avi a una versione compatibile. Per informazioni su come aggiornare il controller Avi, vedere Aggiornamenti flessibili per Avi Vantage.
TKG v2.2 e versioni successive installano automaticamente il driver CSI di AWS EBS nei cluster del carico di lavoro appena creati, ma per eseguire CSI di AWS EBS nei cluster aggiornati da v2.1, il driver deve essere installato manualmente. Eseguire questa procedura per installare manualmente il driver CSI di EBS AWS in un cluster che è stato creato in TKG v2.1 o versioni precedenti e in cui non è mai stato installato il driver CSI di AWS EBS.
Concedere le autorizzazioni per il driver CSI di AWS EBS:
export AWS_REGION={YOUR_AWS_REGION}
tanzu mc permissions aws set
Per ogni cluster del carico di lavoro che utilizza lo storage CSI:
Esportare le variabili di ambiente seguenti e impostare il flag di funzionalità:
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/aws-ebs-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
Impostare NAMESPACE
sullo spazio dei nomi del cluster, tkg-system
nell'esempio precedente.
Generare il manifest del driver CSI:
tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
Dove TARGET_CLUSTER_NAME
è il nome del cluster in cui si sta installando il driver CSI.
Aggiornare lo spazio dei nomi del segreto nei metadati in csi-driver-addon-manifest.yaml
con lo spazio dei nomi del cluster del carico di lavoro. Usare il comando kubectl get cluster -A
per visualizzare lo spazio dei nomi del cluster.
Applicare le modifiche nel contesto del cluster di gestione:
kubectl apply -f csi-driver-addon-manifest.yaml
Annullare l'impostazione delle variabili di ambiente e del flag di funzionalità seguenti:
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
Per il cluster di gestione che utilizza lo storage CSI:
Esportare le variabili di ambiente seguenti:
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/aws-ebs-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
Impostare NAMESPACE
sullo spazio dei nomi del cluster, tkg-system
nell'esempio precedente.
Generare il manifest del driver CSI:
tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
In cui MANAGEMENT_CLUSTER_NAME
è il nome del cluster di gestione.
Aggiornare lo spazio dei nomi del segreto nei metadati in csi-driver-addon-manifest.yaml
con lo spazio dei nomi del cluster di gestione. Usare il comando kubectl get cluster -A
per visualizzare lo spazio dei nomi del cluster.
Applicare le modifiche nel contesto del cluster di gestione:
kubectl apply -f csi-driver-addon-manifest.yaml
Annullare l'impostazione delle variabili di ambiente e del flag di funzionalità seguenti:
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
TKG v2.1 e versioni successive installano automaticamente il driver CSI di Azure Disk nei cluster del carico di lavoro appena creati, ma per eseguire il CSI di Azure Disk nei cluster aggiornati da v1.6, il driver deve essere installato manualmente. Eseguire questa procedura per installare manualmente il driver CSI di Azure Disk in un cluster che è stato creato in TKG v1.6 o versioni precedenti e in cui non è mai stato installato il driver CSI di Azure Disk.
Esportare le variabili di ambiente seguenti e impostare il flag di funzionalità:
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/azuredisk-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
Impostare NAMESPACE
sullo spazio dei nomi del cluster, tkg-system
nell'esempio precedente.
Per ogni cluster del carico di lavoro che utilizza lo storage CSI:
Generare il manifest del driver CSI:
tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
Dove TARGET_CLUSTER_NAME
è il nome del cluster in cui si sta installando il driver CSI.
Aggiornare lo spazio dei nomi del segreto nei metadati in csi-driver-addon-manifest.yaml
con lo spazio dei nomi del cluster del carico di lavoro. Usare il comando kubectl get cluster -A
per visualizzare lo spazio dei nomi del cluster.
Applicare le modifiche nel contesto del cluster di gestione:
kubectl apply -f csi-driver-addon-manifest.yaml
Annullare l'impostazione delle variabili di ambiente e del flag di funzionalità seguenti:
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
Per il cluster di gestione che utilizza lo storage CSI:
Esportare le variabili di ambiente seguenti:
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/azuredisk-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
Impostare NAMESPACE
sullo spazio dei nomi del cluster, tkg-system
nell'esempio precedente.
Generare il manifest del driver CSI:
tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
In cui MANAGEMENT_CLUSTER_NAME
è il nome del cluster di gestione.
Aggiornare lo spazio dei nomi del segreto nei metadati in csi-driver-addon-manifest.yaml
con lo spazio dei nomi del cluster di gestione. Usare il comando kubectl get cluster -A
per visualizzare lo spazio dei nomi del cluster.
Applicare le modifiche nel contesto del cluster di gestione:
kubectl apply -f csi-driver-addon-manifest.yaml
Annullare l'impostazione delle variabili di ambiente e del flag di funzionalità seguenti:
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
Installazione del driver CSI di Azure File dopo l'aggiornamento di Tanzu Kubernetes Grid
Se il cluster non lo ha già installato prima, eseguire questa procedura per installare il driver CSI del file di Azure dopo l'aggiornamento dell'installazione di Tanzu Kubernetes Grid a v2.4+.
Esportare le variabili di ambiente seguenti e impostare il flag di funzionalità:
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/azurefile-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
Impostare NAMESPACE
sullo spazio dei nomi del cluster, tkg-system
nell'esempio precedente.
Per ogni cluster del carico di lavoro che utilizza lo storage CSI:
Generare il manifest del driver CSI:
tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
Dove TARGET_CLUSTER_NAME
è il nome del cluster in cui si sta installando il driver CSI.
Aggiornare lo spazio dei nomi del segreto nei metadati in csi-driver-addon-manifest.yaml
con lo spazio dei nomi del cluster del carico di lavoro. Usare il comando kubectl get cluster -A
per visualizzare lo spazio dei nomi del cluster.
Applicare le modifiche nel contesto del cluster di gestione:
kubectl apply -f csi-driver-addon-manifest.yaml
Annullare l'impostazione delle variabili di ambiente e del flag di funzionalità seguenti:
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
Per il cluster di gestione che utilizza lo storage CSI:
Esportare le variabili di ambiente seguenti:
export _TKG_CLUSTER_FORCE_ROLE="management"
export FILTER_BY_ADDON_TYPE="csi/azurefile-csi-driver"
export NAMESPACE="tkg-system"
export DRY_RUN_MODE="legacy"
tanzu config set features.cluster.allow-legacy-cluster true
Impostare NAMESPACE
sullo spazio dei nomi del cluster, tkg-system
nell'esempio precedente.
Generare il manifest del driver CSI:
tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
In cui MANAGEMENT_CLUSTER_NAME
è il nome del cluster di gestione.
Aggiornare lo spazio dei nomi del segreto nei metadati in csi-driver-addon-manifest.yaml
con lo spazio dei nomi del cluster di gestione. Usare il comando kubectl get cluster -A
per visualizzare lo spazio dei nomi del cluster.
Applicare le modifiche nel contesto del cluster di gestione:
kubectl apply -f csi-driver-addon-manifest.yaml
Annullare l'impostazione delle variabili di ambiente e del flag di funzionalità seguenti:
unset _TKG_CLUSTER_FORCE_ROLE
unset FILTER_BY_ADDON_TYPE
unset NAMESPACE
unset DRY_RUN_MODE
tanzu config set features.cluster.allow-legacy-cluster false
Questo passaggio è necessario sia per l'aggiornamento della versione principale da v2.3.x a v2.4.x sia per l'aggiornamento della versione patch da v2.4.x a v2.4.y.
Per informazioni su come aggiornare il ripristino e la diagnostica degli arresti anomali, vedere Installazione o aggiornamento del file binario di ripristino e diagnostica degli arresti anomali.
Esaminare i cluster di gestione aggiornati o registrarli in Tanzu Mission Control. Vedere Esame e registrazione un cluster di gestione autonomo appena distribuito.