Sie können einen Tanzu Kubernetes-Cluster aktualisieren, indem Sie die Klasse der virtuellen Maschine ändern, die zum Hosten der Clusterknoten verwendet wird.

Der Tanzu Kubernetes Grid-Dienst unterstützt das Aktualisieren eines Clusters durch Ändern der VirtualMachineClass-Definition. In diesem Fall rollt der Dienst neue Knoten mit dieser neuen Klasse aus und fährt die alten Knoten herunter. Weitere Informationen hierzu finden Sie unter Informationen zu Tanzu Kubernetes Grid-Dienst-Cluster-Updates.
Hinweis: Die VirtualMachineClass muss an den vSphere-Namespace gebunden werden, in dem der Tanzu Kubernetes-Cluster bereitgestellt wird. Weitere Informationen hierzu finden Sie unter VM-Klassen für Tanzu Kubernetes-Cluster.

Voraussetzungen

Diese Aufgabe verwendet den Befehl kubectl edit tanzukubernetescluster/CLUSTER-NAME, um das Cluster-Manifest zu aktualisieren. Mit dem Befehl kubectl edit wird das Cluster-Manifest in dem durch die KUBE_EDITOR- oder EDITOR-Umgebungsvariablen definierten Texteditor geöffnet. Wenn Sie die Datei speichern, wird der Cluster mit den Änderungen aktualisiert. Weitere Informationen hierzu finden Sie unter Angeben eines Standardtexteditors für Kubectl.

Prozedur

  1. Authentifizieren Sie sich beim Supervisor-Cluster. Weitere Informationen hierzu finden Sie unter Herstellen einer Verbindung mit dem Supervisor-Cluster als vCenter Single Sign-On-Benutzer.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. Ändern Sie den Kontext in den vSphere-Namespace, in dem der Tanzu Kubernetes-Zielcluster bereitgestellt wird.
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. Beschreiben Sie den Tanzu Kubernetes-Zielcluster und überprüfen Sie die VM-Klasse.
    kubectl describe tanzukubernetescluster CLUSTER-NAME
    Beispielsweise verwendet dieser Cluster die VM-Klasse „best-effort-medium“:
    Spec:
      ...
      Topology:
        Control Plane:
          Class:          best-effort-medium
          ...
        Workers:
          Class:          best-effort-medium
          ...
    
  4. Erstellen Sie eine Liste und eine Beschreibung der verfügbaren VM-Klassen im Namespace.
    kubectl get virtualmachineclassbindings
    Hinweis: Der Befehl kubectl get virtualmachineclasses listet alle VM-Klassen auf, die sich auf dem virtuellen Supervisor-Cluster befinden. Da Sie VM-Klassen mit dem vSphere-Namespace verknüpfen müssen, können Sie nur die VM-Klassen verwenden, die an den Ziel-Namespace gebunden sind.
  5. Führen Sie den folgenden Befehl aus, um das Cluster-Manifest zu bearbeiten.
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
  6. Bearbeiten Sie das Manifest, indem Sie die version-Zeichenfolge ändern und die fullVersion deaktivieren oder auf null setzen, um eine potenzielle Versionsabweichung während der Ermittlung zu verhindern.
    Ändern Sie beispielsweise das Cluster-Manifest von der Verwendung der VM-Klasse best-effort-medium für Steuerungsebenen- und Worker-Knoten:
    spec:
      topology:
        controlPlane:
          class: best-effort-medium
          ...
        workers:
          class: best-effort-medium
          ...
    
    So verwenden Sie die VM-Klasse guaranteed-large für Steuerebenen- und Worker-Knoten:
    spec:
      topology:
        controlPlane:
          class: guaranteed-large
          ...
        workers:
          class: guaranteed-large
          ...
    
  7. Speichern Sie die Änderungen an der Manifestdatei.
    Wenn Sie die Datei speichern, wendet kubectl die Änderungen auf den Cluster an. Im Hintergrund stellt der Tanzu Kubernetes Grid-Dienst die neuen Knoten-VMs bereit und fährt die alten herunter.
  8. Vergewissern Sie sich, dass kubectl berichtet, dass die Manifest-Bearbeitungen erfolgreich aufgezeichnet wurden.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
    Hinweis: Wenn Sie einen Fehler erhalten oder kubectl nicht meldet, dass das Cluster-Manifest erfolgreich bearbeitet wurde, sollten Sie überprüfen, ob Sie Ihren Standardtexteditor mithilfe der Umgebungsvariable KUBE_EDITOR richtig konfiguriert haben. Weitere Informationen hierzu finden Sie unter Angeben eines Standardtexteditors für Kubectl.
  9. Überprüfen Sie, ob der Cluster aktualisiert wird.
    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
  10. Überprüfen Sie, ob der Cluster aktualisiert wurde.
    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