È 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

Nella tabella sono elencate le operazioni di scalabilità supportate per i cluster Tanzu Kubernetes.
Tabella 1. Operazioni di scalabilità supportate per i cluster Tanzu Kubernetes
Nodo Scalabilità orizzontale Scalabilità verticale Scala verticale
Piano di controllo No
Worker
Tenere presenti le considerazioni seguenti:
  • 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.

Quando si salvano le modifiche del manifesto, 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
Per annullare, è sufficiente chiudere l'editor senza salvare.
kubectl edit tanzukubernetescluster/tkgs-cluster-1
Edit cancelled, no changes made.

Scalare orizzontalmente il piano di controllo

È possibile scalare orizzontalmente un cluster Tanzu Kubernetes aumentando da 1 a 3 il numero di nodi del piano di controllo. Il numero di nodi del piano di controllo deve essere dispari. Non è possibile eseguire la scalabilità verticale del piano di controllo.
  1. Eseguire l'autenticazione con il Cluster supervisore.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Passare al contesto Spazio dei nomi vSphere in cui è in esecuzione il cluster Tanzu Kubernetes.
    kubectl config use-context tkgs-cluster-ns
  3. Elencare i cluster Kubernetes in esecuzione nello spazio dei nomi.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 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.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     1               3        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    
  5. 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.

  6. Individuare il parametro spec.topology.controlPlane.count e aumentare il numero di nodi da 1 a 3.
    ...
    controlPlane:
        replicas: 1
    ...
    
    ...
    ControlPlane:
        replicas: 3
    ...
    
  7. 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.

  8. Verificare che i nuovi nodi siano stati aggiunti.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Il piano di controllo scalato orizzontalmente ora presenta 3 nodi.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               3        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    

Scalare orizzontalmente i nodi di lavoro

È possibile scalare orizzontalmente un cluster Tanzu Kubernetes aumentando il numero di nodi di lavoro utilizzando kubectl.

  1. Eseguire l'autenticazione con il Cluster supervisore.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Passare al contesto Spazio dei nomi vSphere in cui è in esecuzione il cluster Tanzu Kubernetes.
    kubectl config use-context tkgs-cluster-ns
  3. Elencare i cluster Kubernetes in esecuzione nello spazio dei nomi.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 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.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               3        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    
  5. 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.

  6. Individuare il parametro spec.topology.workers.count e aumentare il numero di nodi.
    ...
    workers:
        replicas: 3
    ...
    
    ...
    workers:
        replicas: 4
    ...
    
  7. 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.

  8. 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.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               4        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    

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.

  1. Eseguire l'autenticazione con il Cluster supervisore.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Passare al contesto Spazio dei nomi vSphere in cui è in esecuzione il cluster Tanzu Kubernetes.
    kubectl config use-context tkgs-cluster-ns
  3. Elencare i cluster Kubernetes in esecuzione nello spazio dei nomi.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Ottenere il numero di nodi in esecuzione nel cluster di destinazione.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Ad esempio, il cluster seguente include 3 nodi del piano di controllo e 4 nodi di lavoro.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               4        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    
  5. 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.

  6. Individuare il parametro spec.topology.workers.count e aumentare il numero di nodi.
    ...
    workers:
        replicas: 4
    ...
    
    ...
    workers:
        replicas: 2
    ...
    
  7. 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.

  8. 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.
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               2        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True
    

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.

  1. Eseguire l'autenticazione con il Cluster supervisore.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Passare al contesto Spazio dei nomi vSphere in cui è in esecuzione il cluster Tanzu Kubernetes.
    kubectl config use-context tkgs-cluster-ns
  3. Elencare i cluster Kubernetes in esecuzione nello spazio dei nomi.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 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 medium.

    Spec:
      ...
      Topology:
        Control Plane:
          Class:          best-effort-medium
          ...
        nodePool-a1:
          Class:          best-effort-medium
          ...
    
  5. 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.
  6. 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.

  7. 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-large per il piano di controllo e i nodi di lavoro.
    spec:
      topology:
        controlPlane:
          class: guaranteed-large
          ...
        nodePool-a1:
          class: guaranteed-large
          ...
    
  8. 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.

  9. Verificare che il cluster sia aggiornato.
    kubectl get tanzukubernetescluster
    NAMESPACE             NAME             CONTROL PLANE   WORKER   TKR NAME                           AGE     READY
    tkgs-cluster-ns       test-cluster     3               3        v1.21.2---vmware.1-tkg.1.13da849   5d12h   True