È possibile aggiornare un cluster del Servizio TKG modificando la classe della macchina virtuale utilizzata per ospitare i nodi del cluster.
È possibile avviare un aggiornamento in sequenza di un Servizio cluster TKG modificando la definizione
vmClass
utilizzando il comando
kubectl edit
. I nuovi nodi basati sulla classe modificata vengono implementati e i vecchi nodi vengono eliminati.
Nota: Non è possibile utilizzare il comando
kubectl apply
per aggiornare un cluster TKG distribuito.
Prerequisiti
Questa attività richiede l'uso del comando modifica di kubectl. Questo comando 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. Per configurare un editor per kubectl, vedere #GUID-104C2238-1D65-402A-85F0-742DAB49AB1A.
Procedura
- Eseguire l'autenticazione con il Supervisore.
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 TKG di destinazione.
kubectl config use-context SUPERVISOR-NAMESPACE
- Descrivere il cluster TKG di destinazione e controllare la classe di macchine virtuali.
Cluster v1alpha3:
kubectl describe tanzukubernetescluster CLUSTER-NAME
Cluster v1beta1:
kubectl describe cluster CLUSTER-NAME
- Elencare e descrivere le classi di macchine virtuali disponibili nel Spazio dei nomi vSphere in cui viene eseguito il provisioning del cluster.
kubectl get virtualmachineclass
Nota: La classe della macchina virtuale di destinazione è associata al
Spazio dei nomi vSphere in cui viene eseguito il provisioning del cluster TKG. Per informazioni dettagliate sul binding delle classi di macchine virtuali a
Spazi dei nomi vSphere, fare riferimento alla documentazione del Servizio TKG o del Servizio della macchina virtuale.
- Eseguire il comando seguente per modificare il manifesto del cluster.
Cluster v1alpha3:
kubectl edit tanzukubernetescluster/CLUSTER-NAME
Cluster v1beta1:
kubectl edit cluster/CLUSTER-NAME
- Modificare il manifesto modificando la stringa della classe di macchine virtuali.
Ad esempio, se si utilizza un cluster v1alpah3, modificare il manifesto del cluster utilizzando la classe di macchine virtuali
guaranteed-medium
per i nodi di lavoro:
topology:
controlPlane:
replicas: 3
storageClass: vwk-storage-policy
tkr:
reference:
name: v1.27.11---vmware.1-fips.1-tkg.2
vmClass: guaranteed-medium
nodePools:
- name: worker-nodepool-a1
replicas: 3
storageClass: vwk-storage-policy
tkr:
reference:
name: v1.27.11---vmware.1-fips.1-tkg.2
vmClass: guaranteed-medium
Per utilizzare la classe di macchine virtuali
guaranteed-large
per i nodi di lavoro:
topology:
controlPlane:
replicas: 3
storageClass: vwk-storage-policy
tkr:
reference:
name: v1.27.11---vmware.1-fips.1-tkg.2
vmClass: guaranteed-medium
nodePools:
- name: worker-nodepool-a1
replicas: 3
storageClass: vwk-storage-policy
tkr:
reference:
name: v1.27.11---vmware.1-fips.1-tkg.2
vmClass: guaranteed-large
Analogamente, se è stato eseguito il provisioning di un cluster v1beta1, aggiornare il valore di
variables.vmclass
alla classe della macchina virtuale di destinazione.
- Salvare le modifiche apportate al file manifesto.
Quando si salva il file, kubectl applica le modifiche al cluster. In background, il controller TKG 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
#GUID-104C2238-1D65-402A-85F0-742DAB49AB1A.
- Verificare che il cluster sia aggiornato.
Cluster v1alpha3:
kubectl get tanzukubernetescluster
Cluster v1beta1:
kubectl get cluster