Per aggiornare la versione di Tanzu Kubernetes dopo la conversione della specifica del cluster nell'API v1alpha2, che in genere viene eseguita modificando la versione di Tanzu Kubernetes, potrebbe essere necessario eseguire alcune operazioni di pre-elaborazione della specifica per evitare errori.
Conversione automatica delle specifiche del cluster
Per aggiornare l'ambiente di vSphere with Tanzu all'API v1alpha2 di Servizio Tanzu Kubernetes Grid, aggiornare il Cluster supervisore in cui viene eseguito il servizio.
Una volta che Servizio Tanzu Kubernetes Grid esegue l'API v1alpha2, il sistema converte automaticamente tutte le specifiche dei cluster di Tanzu Kubernetes esistenti dal formato v1alpha1 al formato v1alpha2. Durante il processo di conversione automatica, il sistema crea e popola i campi previsti per ogni manifesto del cluster. Impostazioni obsolete e aggiunte all'API elenca i campi delle specifiche del cluster nuovi e obsoleti nell'API v1alpha2.
Per aggiornare la versione di Tanzu Kubernetes per un cluster il cui manifesto è stato convertito automaticamente nel formato v1alpha2, è necessario eseguire alcune operazioni di pre-elaborazione manuale per evitare errori. Esempi di aggiornamento del cluster elenca varie opzioni.
Impostazioni obsolete e aggiunte all'API
Impostazioni obsolete | Nuove impostazioni | Commenti |
---|---|---|
|
|
È necessario utilizzare il formato TKR NAME. Vedere gli esempi. |
|
|
In un cluster convertito, il blocco spec.topology.workers diventa spec.topology.nodePools[0] . La prima voce nell'elenco |
|
|
count è sostituito da replicas |
|
|
class è sostituito da vmClass |
N/D |
|
Valori di coppie di chiavi facoltativi per organizzare e categorizzare gli oggetti. Le etichette vengono propagate ai nodi creati. |
N/D |
|
Taint facoltativi con cui registrare i nodi. I taint definiti dall'utente vengono propagati ai nodi creati. |
È necessario il formato TKR NAME
Oltre ai campi spec.distribution.version
considerati obsoleti, il formato DISTRIBUTION per specificare la versione di Tanzu Kubernetes non è supportato. Questo significa che non è possibile utilizzare i seguenti formati stringa per fare riferimento alla versione di destinazione: 1.21.2+vmware.1-tkg.1.ee25d55
, 1.21.2
e 1.21
.
kubectl get tanzukubernetescluster NAMESPACE NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE tkgs-cluster-1 test-cluster 3 3 v1.21.2---vmware.1-tkg.1.ee25d55 38h True True [1.21.2+vmware.1-tkg.1.ee25d55]
Esempi di aggiornamento del cluster
Poiché la modifica di spec.distribution.version
è il modo più comune per attivare un aggiornamento in sequenza del cluster (vedere Aggiornamento dei cluster di Tanzu Kubernetes) e questo campo è deprecato nell'API v1alpha2, ci sono alcune considerazioni da tenere presenti e alcuni consigli di pre-elaborazione da seguire per evitare potenziali problemi di aggiornamento del cluster.
Gli esempi seguenti illustrano come aggiornare la versione di un cluster di Tanzu Kubernetes il cui provisioning è stato eseguito utilizzando l'API v1alpha1 in un sistema che esegue l'API v1alpha2.
Esempio 1 di aggiornamento del cluster: utilizzo di un singolo riferimento TKR NAME nel piano di controllo
L'approccio consigliato è rimuovere tutti i blocchi nodePools[*].tkr.reference.name
dalla specifica convertita e aggiornare controlPlane.tkr.reference.name
con il TKR NAME della versione di destinazione. In questo caso, la stessa versione di Tanzu Kubernetes viene propagata a tutti i nodi di nodePools[*]
.
In futuro, le versioni di Tanzu Kubernetes potranno essere diverse tra controlPlane
e nodePools[*]
. Al momento, tutte le versioni di un cluster devono tuttavia corrispondere, pertanto è sufficiente inserire un singolo riferimento TKR NAME in controlPlane
.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-update-example1 namespace: tkgs-cluster-ns spec: settings: network: cni: name: antrea pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: controlPlane: replicas: 3 storageClass: vwt-storage-policy tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55 vmClass: best-effort-medium nodePools: - name: workers replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium
Esempio 2 di aggiornamento del cluster: utilizzo di un riferimento TKR NAME per ogni pool di nodi
Il secondo esempio consiste nell'inserire il TKR NAME nel blocco tkr.reference.name
per entrambe le topologie controlPlane
e nodePools[*]
.
Questo approccio consente di prepararsi per le versioni future quando la versione di Tanzu Kubernetes potrà essere diversa tra i pool di nodi. Al momento devono corrispondere.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-update-example2 namespace: tkgs-cluster-ns spec: settings: network: cni: name: antrea pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: controlPlane: replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55 nodePools: - name: workers replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55
Esempio 3 di aggiornamento del cluster: utilizzo dei campi della distribuzione obsoleti
spec.distribution.fullVersion
e
spec.distribution.version
e rimuovere manualmente tutti i blocchi
tkr.reference.name
. È necessario includere entrambi i campi, facendo in modo che uno utilizzi il formato TKR NAME e l'altro sia impostato su null. Le abbreviazioni delle versioni, come
v1.21.2
e
v1.21
, non sono supportate.
spec.distribution.version
non è supportato.
fullVersion
con il TKR NAME e un valore null (vuoto) nel campo
version
. Tutte le voci
tkr.reference.name
vengono rimosse.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-update-example3a namespace: tkgs-cluster-ns spec: distribution: fullVersion: v1.21.2---vmware.1-tkg.1.ee25d55 version: "" settings: network: cni: name: antrea pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: controlPlane: replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium nodePools: - name: workers replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium
version
con il TKR NAME e un valore null (vuoto) nel campo
fullVersion
. Anche se si utilizza il campo
version
, le abbreviazioni delle versioni non sono supportate. Tutte le voci
tkr.reference.name
vengono rimosse.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: tkgs-cluster-update-example3b namespace: tkgs-cluster-ns spec: distribution: fullVersion: "" version: v1.21.2---vmware.1-tkg.1.ee25d55 settings: network: cni: name: antrea pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: controlPlane: replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium nodePools: - name: workers replicas: 3 storageClass: vwt-storage-policy vmClass: best-effort-medium