Sie können einen virtuellen Tanzu Kubernetes-Cluster horizontal skalieren, indem Sie die Anzahl der Knoten ändern oder die Klasse der virtuellen Maschine, die die Knoten hosten, vertikal ändern.

Unterstützte Skalierungsvorgänge

In der Tabelle sind die unterstützten Skalierungsvorgänge für Tanzu Kubernetes-Cluster aufgeführt.
Tabelle 1. Unterstützte Skalierungsvorgänge für Tanzu Kubernetes-Cluster
Knoten Horizontales Hochskalieren Horizontales Herunterskalieren Vertikale Skalierung Skalierung des Volumes
Steuerungsebene Ja Nein Ja Nein
Worker Ja Ja Ja Ja
Berücksichtigen Sie die folgenden Aspekte:
  • Bei der vertikalen Skalierung eines Clusterknotens kann es vorkommen, dass Arbeitslasten mangels verfügbarer Ressourcen nicht mehr auf dem Knoten ausgeführt werden können. Aus diesem Grund kann die horizontale Skalierung als Ansatz bevorzugt werden.
  • VM-Klassen sind nicht unveränderlich. Wenn Sie einen Tanzu Kubernetes-Cluster nach der Bearbeitung einer von diesem Cluster verwendeten VM-Klasse skalieren, verwenden neue Clusterknoten die aktualisierte Klassendefinition, aber vorhandene Clusterknoten verwenden weiterhin die anfängliche Klassendefinition, was zu einer Diskrepanz führt. Weitere Informationen finden Sie unter VM-Klassen für Tanzu Kubernetes-Cluster.
  • Worker-Knoten-Volumes können nach der Bereitstellung geändert werden, Knoten-Volumes der Steuerungsebene hingegen nicht.

Skalierungsvoraussetzungen: Konfigurieren der Kubectl-Bearbeitung

Zum Skalieren eines Tanzu Kubernetes-Clusters aktualisieren Sie das Cluster-Manifest mit dem Befehl kubectl edit tanzukubernetescluster/CLUSTER-NAME. Mit dem Befehl kubectl edit wird das Cluster-Manifest in dem durch die KUBE_EDITOR- oder EDITOR-Umgebungsvariablen definierten Texteditor geöffnet. Anweisungen zum Einrichten der Umgebungsvariablen finden Sie unter Angeben eines Standardtexteditors für Kubectl.

Wenn Sie die Manifeständerungen speichern, meldet kubectl, dass die Bearbeitungen erfolgreich aufgezeichnet wurden, und der Cluster wird mit den Änderungen aktualisiert.
kubectl edit tanzukubernetescluster/tkgs-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
Schließen Sie zum Abbrechen einfach den Editor, ohne zu speichern.
kubectl edit tanzukubernetescluster/tkgs-cluster-1
Edit cancelled, no changes made.

Horizontales Hochskalieren der Steuerungsebene

Sie können einen Tanzu Kubernetes-Cluster horizontal hochskalieren, indem Sie die Anzahl der Steuerungsebenenknoten von 1 bis 3 erhöhen. Die Anzahl der Steuerungsebenenknoten muss ungerade sein. Sie können die Steuerungsebene nicht skalieren.
  1. Authentifizieren Sie sich beim Supervisor-Cluster.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Wechseln Sie den Kontext zum vSphere-Namespace, in dem der Tanzu Kubernetes-Cluster ausgeführt wird.
    kubectl config use-context tkgs-cluster-ns
  3. Listen Sie die Kubernetes-Cluster auf, die im Namespace ausgeführt werden.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Rufen Sie die Anzahl der im Zielcluster ausgeführten Knoten ab.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Der folgende Cluster hat z. B. 1 Steuerungsebenenknoten und 3 Worker-Knoten.
    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. Führen Sie zum Laden des Cluster-Manifests zur Bearbeitung den Befehl kubectl edit aus.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    Das Cluster-Manifest wird in dem Texteditor geöffnet, der von den Umgebungsvariablen KUBE_EDITOR oder EDITOR definiert wird.

  6. Suchen Sie den spec.topology.controlPlane.count-Parameter und erhöhen Sie die Anzahl der Knoten von 1 auf 3.
    ...
    controlPlane:
        replicas: 1
    ...
    
    ...
    ControlPlane:
        replicas: 3
    ...
    
  7. Um die Änderungen anzuwenden, speichern Sie die Datei im Texteditor. Schließen Sie zum Abbrechen den Editor ohne Speichern.

    Wenn Sie die Datei speichern, wendet kubectl die Änderungen auf den Cluster an. Der VM-Dienst auf dem Supervisor-Cluster stellt im Hintergrund den neuen Worker-Knoten bereit.

  8. Vergewissern Sie sich, dass die neuen Knoten hinzugefügt wurden.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Die horizontal hochskalierte Steuerungsebene verfügt jetzt über 3 Knoten.
    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
    

Horizontales Hochskalieren der Worker-Knoten

Sie können einen Tanzu Kubernetes-Cluster horizontal hochskalieren, indem Sie die Zahl der Worker-Knoten mithilfe von kubectl erhöhen.

  1. Authentifizieren Sie sich beim Supervisor-Cluster.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Wechseln Sie den Kontext zum vSphere-Namespace, in dem der Tanzu Kubernetes-Cluster ausgeführt wird.
    kubectl config use-context tkgs-cluster-ns
  3. Listen Sie die Kubernetes-Cluster auf, die im Namespace ausgeführt werden.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Rufen Sie die Anzahl der im Zielcluster ausgeführten Knoten ab.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Der folgende Cluster hat z. B. 3 Steuerungsebenenknoten und 3 Worker-Knoten.
    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. Führen Sie zum Laden des Cluster-Manifests zur Bearbeitung den Befehl kubectl edit aus.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    Das Cluster-Manifest wird in dem Texteditor geöffnet, der von den Umgebungsvariablen KUBE_EDITOR oder EDITOR definiert wird.

  6. Suchen Sie den spec.topology.workers.count-Parameter und erhöhen Sie die Anzahl der Knoten.
    ...
    workers:
        replicas: 3
    ...
    
    ...
    workers:
        replicas: 4
    ...
    
  7. Um die Änderungen anzuwenden, speichern Sie die Datei im Texteditor. Schließen Sie zum Abbrechen den Editor ohne Speichern.

    Wenn Sie die Datei speichern, wendet kubectl die Änderungen auf den Cluster an. Der VM-Dienst auf dem Supervisor-Cluster stellt im Hintergrund den neuen Worker-Knoten bereit.

  8. Vergewissern Sie sich, dass die neuen Worker-Knoten hinzugefügt wurden.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Durch das horizontale Hochskalieren ergeben sich 4 Worker-Knoten für den Cluster.
    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
    

Horizontales Herunterskalieren der Worker-Knoten

Sie können einen Tanzu Kubernetes-Cluster horizontal herunterskalieren, indem Sie die Zahl der Worker-Knoten verringern. Die Skalierung in der Steuerungsebene wird nicht unterstützt.

  1. Authentifizieren Sie sich beim Supervisor-Cluster.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Wechseln Sie den Kontext zum vSphere-Namespace, in dem der Tanzu Kubernetes-Cluster ausgeführt wird.
    kubectl config use-context tkgs-cluster-ns
  3. Listen Sie die Kubernetes-Cluster auf, die im Namespace ausgeführt werden.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Rufen Sie die Anzahl der im Zielcluster ausgeführten Knoten ab.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Der folgende Cluster hat z. B. 3 Steuerungsebenenknoten und 4 Worker-Knoten.
    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. Führen Sie zum Laden des Cluster-Manifests zur Bearbeitung den Befehl kubectl edit aus.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    Das Cluster-Manifest wird in dem Texteditor geöffnet, der von den Umgebungsvariablen KUBE_EDITOR oder EDITOR definiert wird.

  6. Suchen Sie den spec.topology.workers.count-Parameter und reduzieren Sie die Anzahl der Knoten.
    ...
    workers:
        replicas: 4
    ...
    
    ...
    workers:
        replicas: 2
    ...
    
  7. Um die Änderungen anzuwenden, speichern Sie die Datei im Texteditor. Schließen Sie zum Abbrechen den Editor ohne Speichern.

    Wenn Sie die Datei speichern, wendet kubectl die Änderungen auf den Cluster an. Der VM-Dienst auf dem Supervisor-Cluster stellt im Hintergrund den neuen Worker-Knoten bereit.

  8. Vergewissern Sie sich, dass die Worker-Knoten entfernt wurden.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Durch das horizontale Herunterskalieren ergeben sich 2 Worker-Knoten für den Cluster.
    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
    

Vertikale Skalierung eines Clusters

Sie können einen Tanzu Kubernetes-Cluster vertikal skalieren, indem Sie die Klasse der virtuellen Maschine ändern, die zum Hosten der Clusterknoten verwendet wird. Vertikale Skalierung wird sowohl für Steuerungsebenen- als auch für Worker-Knoten unterstützt.

Der Tanzu Kubernetes Grid-Dienst unterstützt die vertikale Skalierung von Clusterknoten über den in den Dienst integrierten Mechanismus für parallele Updates. Wenn Sie die VirtualMachineClass-Definition ändern, rollt der Dienst neue Knoten mit dieser neuen Klasse aus und fährt die alten Knoten herunter. Weitere Informationen hierzu finden Sie unter Update von Tanzu Kubernetes-Clustern.

  1. Authentifizieren Sie sich beim Supervisor-Cluster.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Wechseln Sie den Kontext zum vSphere-Namespace, in dem der Tanzu Kubernetes-Cluster ausgeführt wird.
    kubectl config use-context tkgs-cluster-ns
  3. Listen Sie die Kubernetes-Cluster auf, die im Namespace ausgeführt werden.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Beschreiben Sie den Tanzu Kubernetes-Zielcluster und überprüfen Sie die VM-Klasse.
    kubectl describe tanzukubernetescluster tkgs-cluster-2

    Der folgende Cluster verwendet z. B. die VM-Klasse „best-effort-medium“.

    Spec:
      ...
      Topology:
        Control Plane:
          Class:          best-effort-medium
          ...
        nodePool-a1:
          Class:          best-effort-medium
          ...
    
  5. Erstellen Sie eine Liste und eine Beschreibung der verfügbaren VM-Klassen.
    kubectl get virtualmachineclassbinding
    kubectl describe virtualmachineclassbinding
    Hinweis: Die VM-Klasse, die Sie verwenden möchten, muss an den vSphere-Namespace gebunden sein. Weitere Informationen finden Sie unter VM-Klassen für Tanzu Kubernetes-Cluster.
  6. Öffnen Sie zum Bearbeiten des Manifests des Zielclusters.
    kubectl edit tanzukubernetescluster/tkgs-cluster-2

    Das Cluster-Manifest wird in dem Texteditor geöffnet, der von den Umgebungsvariablen KUBE_EDITOR oder EDITOR definiert wird.

  7. Bearbeiten Sie das Manifest, indem Sie die VM-Klasse ändern.
    Bearbeiten Sie z. B. das Cluster-Manifest, um die guaranteed-large-VM-Klasse für Steuerungsebene und Worker-Knoten zu verwenden.
    spec:
      topology:
        controlPlane:
          class: guaranteed-large
          ...
        nodePool-a1:
          class: guaranteed-large
          ...
    
  8. Um die Änderungen anzuwenden, speichern Sie die Datei im Texteditor. Schließen Sie zum Abbrechen den Editor ohne Speichern.

    Wenn Sie die Datei speichern, wendet kubectl die Änderungen auf den Cluster an. Im Hintergrund stellt der Tanzu Kubernetes Grid-Dienst die neuen Knoten bereit und löscht die alten. Eine Beschreibung des rollierenden Updates finden Sie unter Informationen zu Tanzu Kubernetes Grid-Dienst-Cluster-Updates.

  9. Überprüfen Sie, ob der Cluster aktualisiert wurde.
    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
    

Skalieren von Knoten-Volumes

In der Tanzu Kubernetes-Clusterspezifikation können Sie mindestens ein persistentes Volumes deklarieren. Das Deklarieren eines Knoten-Volumes eignet sich für Komponenten mit hohen Änderungsraten, wie z. B. die ectd-Datenbank auf der Steuerungsebene und die Container-Laufzeit auf Worker-Knoten. Ein Auszug aus einer Clusterspezifikation, bei der beide Knoten-Volumes deklariert sind, wird unten zu Referenzzwecken bereitgestellt. (Ein vollständiges Beispiel einer Clusterspezifikation steht hier zur Verfügung.)

Wenn Sie nach der Clustererstellung ein oder mehrere Knoten-Volumes hinzufügen oder ändern möchten, bedenken Sie Folgendes:
Volume-Knoten Beschreibung
Änderungen des Worker-Knoten-Volumes sind zulässig.
Nach der Bereitstellung eines Tanzu Kubernetes-Clusters können Sie ein Worker-Knoten-Volume hinzufügen oder aktualisieren. Wenn Sie ein paralleles Update initiieren, wird der Cluster mit dem neuen oder geänderten Volume aktualisiert.
Warnung: Wenn Sie den Worker-Knoten mit einem neuen oder geänderten Volume skalieren, werden die Daten im aktuellen Volume während des parallelen Updates gelöscht.
Änderungen des Knoten-Volumes der Steuerungsebene sind nicht zulässig. Nach der Bereitstellung eines Tanzu Kubernetes-Clusters können Sie ein Knoten-Volume einer Steuerungsebene weder hinzufügen noch aktualisieren. Die Kubernetes-Cluster-API (CAPI) verbietet Änderungen an spec.toplogy.controlPlane.volumes nach der Erstellung. Der Versuch, ein Steuerungsebenen-Volume nach der Clustererstellung hinzuzufügen oder zu ändern, wird zurückgewiesen, und Sie erhalten die Fehlermeldung „Aktualisierungen unveränderlicher Felder sind nicht zulässig“.
spec:
  topology:
    controlPlane:
      replicas: 3
      vmClass: guaranteed-medium
      storageClass: vwt-storage-policy
      volumes:
        - name: etcd
          mountPath: /var/lib/etcd
          capacity:
            storage: 4Gi
      tkr:  
        reference:
          name: v1.21.2---vmware.1-tkg.1.ee25d55
    nodePools:
    - name: worker-nodepool-a1
      replicas: 3
      vmClass: guaranteed-large
      storageClass: vwt-storage-policy
      volumes:
        - name: containerd
          mountPath: /var/lib/containerd
          capacity:
            storage: 16Gi