È possibile scalare un cluster Tanzu Kubernetes orizzontalmente modificando il numero di nodi oppure verticalmente modificando la classe di macchine virtuali che ospita i nodi.
Operazioni di scalabilità supportate
Nodo | Scalabilità orizzontale | Scalabilità verticale | Scala verticale |
---|---|---|---|
Piano di controllo | Sì | No | Sì |
Worker | Sì | Sì | Sì |
- Durante la scalabilità verticale di un nodo del cluster, potrebbe non essere possibile eseguire i carichi di lavoro sul nodo per mancanza di risorse disponibili. Per questo motivo, sarebbe preferibile adottare l'approccio della scalabilità orizzontale.
- Le classi di macchine virtuali non sono modificabili. Se si esegue la scalabilità orizzontale di un cluster Tanzu Kubernetes dopo aver modificato una classe di macchine virtuali utilizzata da tale cluster, i nuovi nodi del cluster utilizzano la definizione della classe aggiornata, ma i nodi del cluster esistenti continuano a utilizzare la definizione della classe iniziale, causando una mancata corrispondenza. Vedere Classi di macchine virtuali per i cluster di Tanzu Kubernetes.
Prerequisito di scalabilità: configurare la modifica di Kubectl
Per scalare un cluster Tanzu Kubernetes, aggiornare il manifesto del cluster utilizzando il comando kubectl edit tanzukubernetescluster/CLUSTER-NAME
. Il comando kubectl edit apre il manifesto del cluster nell'editor di testo definito dalla variabile di ambiente KUBE_EDITOR o EDITOR. Per istruzioni sulla configurazione della variabile di ambiente, vedere Specificare un editor di testo predefinito per Kubectl.
kubectl
segnala che le modifiche sono state registrate correttamente e il cluster viene aggiornato.
kubectl edit tanzukubernetescluster/tkgs-cluster-1 tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
kubectl edit tanzukubernetescluster/tkgs-cluster-1 Edit cancelled, no changes made.
Scalare orizzontalmente il piano di controllo
- Eseguire l'autenticazione con il Cluster supervisore.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Passare al contesto Spazio dei nomi vSphere in cui è in esecuzione il cluster Tanzu Kubernetes.
kubectl config use-context tkgs-cluster-ns
- Elencare i cluster Kubernetes in esecuzione nello spazio dei nomi.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- Ottenere il numero di nodi in esecuzione nel cluster di destinazione.
kubectl get tanzukubernetescluster tkgs-cluster-1
Ad esempio, il cluster seguente ha 1 nodo del piano di controllo e 3 nodi di lavoro.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 1 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
- Caricare il manifesto del cluster per la modifica utilizzando il comando
kubectl edit
.kubectl edit tanzukubernetescluster/tkgs-cluster-1
Il manifesto del cluster viene aperto nell'editor di testo definito dalle variabili di ambiente KUBE_EDITOR o EDITOR.
- Individuare il parametro
spec.topology.controlPlane.count
e aumentare il numero di nodi da 1 a 3.... controlPlane: count: 1 ...
... ControlPlane: count: 3 ...
- Per applicare le modifiche, salvare il file nell'editor di testo. Per annullare, chiudere l'editor senza salvare.
Quando si salva il file, kubectl applica le modifiche al cluster. In background, il Servizio macchina virtuale nel Cluster supervisore esegue il provisioning del nuovo nodo di lavoro.
- Verificare che i nuovi nodi siano stati aggiunti.
kubectl get tanzukubernetescluster tkgs-cluster-1
Il piano di controllo scalato orizzontalmente ora presenta 3 nodi.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
Scalare orizzontalmente i nodi di lavoro
È possibile scalare orizzontalmente un cluster Tanzu Kubernetes aumentando il numero di nodi di lavoro utilizzando kubectl.
- Eseguire l'autenticazione con il Cluster supervisore.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Passare al contesto Spazio dei nomi vSphere in cui è in esecuzione il cluster Tanzu Kubernetes.
kubectl config use-context tkgs-cluster-ns
- Elencare i cluster Kubernetes in esecuzione nello spazio dei nomi.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- Ottenere il numero di nodi in esecuzione nel cluster di destinazione.
kubectl get tanzukubernetescluster tkgs-cluster-1
Ad esempio, il cluster seguente presenta 3 nodi del piano di controllo e 3 nodi di lavoro.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
- Caricare il manifesto del cluster per la modifica utilizzando il comando
kubectl edit
.kubectl edit tanzukubernetescluster/tkgs-cluster-1
Il manifesto del cluster viene aperto nell'editor di testo definito dalle variabili di ambiente KUBE_EDITOR o EDITOR.
- Individuare il parametro
spec.topology.workers.count
e aumentare il numero di nodi.... workers: count: 3 ...
... workers: count: 4 ...
- Per applicare le modifiche, salvare il file nell'editor di testo. Per annullare, chiudere l'editor senza salvare.
Quando si salva il file, kubectl applica le modifiche al cluster. In background, il Servizio macchina virtuale nel Cluster supervisore esegue il provisioning del nuovo nodo di lavoro.
- Verificare che il nuovo nodo di lavoro venga aggiunto.
kubectl get tanzukubernetescluster tkgs-cluster-1
Dopo la scalatura orizzontale, il cluster presenta 4 nodi di lavoro.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 4 v1.18.5+vmware.1-tkg.1.886c781 1d running
Scalare verticalmente i nodi di lavoro
È possibile scalare verticalmente un cluster Tanzu Kubernetes diminuendo il numero di nodi di lavoro. La scalatura verticale del piano di controllo non è supportata.
- Eseguire l'autenticazione con il Cluster supervisore.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Passare al contesto Spazio dei nomi vSphere in cui è in esecuzione il cluster Tanzu Kubernetes.
kubectl config use-context tkgs-cluster-ns
- Elencare i cluster Kubernetes in esecuzione nello spazio dei nomi.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- Ottenere il numero di nodi in esecuzione nel cluster di destinazione.
kubectl get tanzukubernetescluster tkgs-cluster-1
Ad esempio, il cluster seguente presenta 3 nodi del piano di controllo e 3 nodi di lavoro.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 4 v1.18.5+vmware.1-tkg.1.886c781 1d running
- Caricare il manifesto del cluster per la modifica utilizzando il comando
kubectl edit
.kubectl edit tanzukubernetescluster/tkgs-cluster-1
Il manifesto del cluster viene aperto nell'editor di testo definito dalle variabili di ambiente KUBE_EDITOR o EDITOR.
- Individuare il parametro
spec.topology.workers.count
e aumentare il numero di nodi.... workers: count: 4 ...
... workers: count: 2 ...
- Per applicare le modifiche, salvare il file nell'editor di testo. Per annullare, chiudere l'editor senza salvare.
Quando si salva il file, kubectl applica le modifiche al cluster. In background, il Servizio macchina virtuale nel Cluster supervisore esegue il provisioning del nuovo nodo di lavoro.
- Verificare che i nodi di lavoro siano stati rimossi.
kubectl get tanzukubernetescluster tkgs-cluster-1
Dopo la scalatura verticale, il cluster presenta 2 nodi di lavoro.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 2 v1.18.5+vmware.1-tkg.1.886c781 1d running
Scalare verticalmente un cluster
È possibile scalare verticalmente un cluster Tanzu Kubernetes modificando la classe di macchine virtuali utilizzata per ospitare i nodi del cluster. La scalatura verticale è supportata sia per il piano di controllo che per i nodi di lavoro.
Il Servizio Tanzu Kubernetes Grid supporta la scalatura verticale dei nodi del cluster tramite il meccanismo di aggiornamento in sequenza integrato nel servizio. Se si modifica la definizione di VirtualMachineClass
, il servizio implementa nuovi nodi con la nuova classe e rende inattivi i nodi precedenti. Vedere Aggiornamento dei cluster di Tanzu Kubernetes.
- Eseguire l'autenticazione con il Cluster supervisore.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Passare al contesto Spazio dei nomi vSphere in cui è in esecuzione il cluster Tanzu Kubernetes.
kubectl config use-context tkgs-cluster-ns
- Elencare i cluster Kubernetes in esecuzione nello spazio dei nomi.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- Descrivere il cluster Tanzu Kubernetes di destinazione e controllare la classe di macchine virtuali.
kubectl describe tanzukubernetescluster tkgs-cluster-2
Ad esempio, il cluster seguente utilizza la classe di macchine virtuali best effort small.
Spec: ... Topology: Control Plane: Class: best-effort-small ... Workers: Class: best-effort-small ...
- Elencare e descrivere le classi di macchine virtuali disponibili.
kubectl get virtualmachineclassbinding
kubectl describe virtualmachineclassbinding
Nota: La classe di macchine virtuali che si desidera utilizzare deve essere associata al Spazio dei nomi vSphere. Vedere Classi di macchine virtuali per i cluster di Tanzu Kubernetes. - Aprire per modificare il manifesto del cluster di destinazione.
kubectl edit tanzukubernetescluster/tkgs-cluster-2
Il manifesto del cluster viene aperto nell'editor di testo definito dalle variabili di ambiente KUBE_EDITOR o EDITOR.
- Modificare il manifesto modificando la classe di macchine virtuali.
Ad esempio, modificare il manifesto del cluster in modo che utilizzi la classe di macchine virtuali
guaranteed-xlarge
per il piano di controllo e i nodi di lavoro.spec: topology: controlPlane: class: guaranteed-xlarge ... workers: class: guaranteed-xlarge ...
- Per applicare le modifiche, salvare il file nell'editor di testo. Per annullare, chiudere l'editor senza salvare.
Quando si salva il file, kubectl applica le modifiche al cluster. In background il Servizio Tanzu Kubernetes Grid esegue il provisioning dei nuovi nodi ed elimina quelli precedenti. Per una descrizione del processo di aggiornamento in sequenza, vedere Informazioni sugli aggiornamenti dei cluster di Tanzu Kubernetes.
- Verificare che il cluster venga aggiornato.
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