È possibile aggiornare un cluster di Tanzu Kubernetes cambiando la classe di macchine virtuali utilizzata per ospitare i nodi del cluster.
Prerequisiti
Questa attività utilizza il comando kubectl edit tanzukubernetescluster/CLUSTER-NAME
per aggiornare il manifesto del cluster. Il comando kubectl edit apre il manifesto del cluster nell'editor di testo definito dalla variabile di ambiente KUBE_EDITOR o EDITOR. Quando si salva il file, il cluster viene aggiornato con le modifiche. Vedere Specificare un editor di testo predefinito per Kubectl.
Procedura
- Eseguire l'autenticazione con il Cluster supervisore. Vedere Connessione al Cluster supervisore come utente vCenter Single Sign-On.
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- Passare al contesto dello Spazio dei nomi vSphere in cui viene eseguito il provisioning del cluster Tanzu Kubernetes di destinazione.
kubectl config use-context SUPERVISOR-NAMESPACE
- Descrivere il cluster Tanzu Kubernetes di destinazione e controllare la classe di macchine virtuali.
kubectl describe tanzukubernetescluster CLUSTER-NAME
Ad esempio, questo cluster utilizza la classe di macchine virtuali best-effort-medium:
Spec:
...
Topology:
Control Plane:
Class: best-effort-medium
...
Workers:
Class: best-effort-medium
...
- Elencare e descrivere le classi di macchine virtuali disponibili nello spazio dei nomi.
kubectl get virtualmachineclassbindings
Nota: Il comando
kubectl get virtualmachineclasses
elenca tutte le classi di macchine virtuali presenti nel
Cluster supervisore. Poiché è necessario associare classi di macchine virtuali al
Spazio dei nomi vSphere, è possibile utilizzare solo le classi di macchine virtuali associate allo spazio dei nomi di destinazione.
- Eseguire il comando seguente per modificare il manifesto del cluster.
kubectl edit tanzukubernetescluster/CLUSTER-NAME
- Modificare il manifesto modificando la stringa
version
e annullando l'impostazione o impostando su null fullVersion
per evitare la potenziale non corrispondenza della versione durante l'individuazione.
Ad esempio, modificare il manifesto del cluster utilizzando la classe di macchine virtuali
best-effort-medium
per il piano di controllo e i nodi di lavoro:
spec:
topology:
controlPlane:
class: best-effort-medium
...
workers:
class: best-effort-medium
...
Per utilizzare la classe di macchine virtuali
guaranteed-large
per il piano di controllo e i nodi di lavoro:
spec:
topology:
controlPlane:
class: guaranteed-large
...
workers:
class: guaranteed-large
...
- Salvare le modifiche apportate al file manifesto.
Quando si salva il file, kubectl applica le modifiche al cluster. In background, il
Servizio Tanzu Kubernetes Grid esegue il provisioning delle nuove macchine virtuali dei nuovi nodi e disattiva quelle precedenti.
- Verificare che kubectl riporti che le modifiche al manifesto sono state registrate correttamente.
kubectl edit tanzukubernetescluster/tkgs-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
Nota: Se si riceve un errore o kubectl non riporta che il manifesto del cluster è stato modificato correttamente, assicurarsi di aver configurato correttamente l'editor di testo predefinito utilizzando la variabile di ambiente KUBE_EDITOR. Vedere
Specificare un editor di testo predefinito per Kubectl.
- Verificare che sia in corso l'aggiornamento del cluster.
kubectl get tanzukubernetescluster
NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE
tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.c40d30d 21h updating
- Verificare che il cluster sia aggiornato.
kubectl get tanzukubernetescluster
NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE
tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.c40d30d 22h running