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

Sie können ein paralleles Update eines TKG 2.0-Clusters initiieren, indem Sie die VirtualMachineClass-Definition ändern. Neue Knoten basierend auf der geänderten Klasse werden bereitgestellt, und die alten Knoten werden heruntergefahren.

Voraussetzungen

Für diese Aufgabe muss der kubectl-Befehl edit verwendet werden. Mit diesem Befehl wird das Cluster-Manifest in dem durch Ihre KUBE_EDITOR- oder EDITOR-Umgebungsvariable definierten Texteditor geöffnet. Wenn Sie die Datei speichern, wird der Cluster mit den Änderungen aktualisiert. Informationen zum Konfigurieren eines Editors für kubectl finden Sie unter Konfigurieren eines Texteditors für Kubectl.

Prozedur

  1. Authentifizieren Sie sich beim Supervisor.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. Ändern Sie den Kontext in den vSphere-Namespace, in dem der TKG-Zielcluster bereitgestellt wird.
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. Beschreiben Sie den TKG-Zielcluster und überprüfen Sie die VM-Klasse.
    v1alpha3-Cluster:
    kubectl describe tanzukubernetescluster CLUSTER-NAME
    v1beta1-Cluster:
    kubectl describe cluster CLUSTER-NAME
  4. Erstellen Sie eine Liste und eine Beschreibung der verfügbaren VM-Klassen im Namespace.
    kubectl get virtualmachineclassbindings
    Hinweis: Die VirtualMachineClass muss an den vSphere-Namespace gebunden werden, in dem der TKG-Cluster bereitgestellt wird.
  5. Führen Sie den folgenden Befehl aus, um das Cluster-Manifest zu bearbeiten.
    v1alpha3-Cluster:
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
    v1beta1-Cluster:
    kubectl edit cluster/CLUSTER-NAME
  6. Bearbeiten Sie das Manifest, indem Sie die Zeichenfolge der VM-Klasse ändern.
    Wenn Sie beispielsweise einen v1alpah3-Cluster verwenden, ändern Sie das Cluster-Manifest von der Verwendung der VM-Klasse guaranteed-medium für Worker-Knoten:
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.22.9---vmware.1-tkg.1.cc71bc8
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.22.9---vmware.1-tkg.1.cc71bc8
          vmClass: guaranteed-medium
    So verwenden Sie die VM-Klasse guaranteed-large für Worker-Knoten:
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.22.9---vmware.1-tkg.1.cc71bc8
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.22.9---vmware.1-tkg.1.cc71bc8
          vmClass: guaranteed-large
    Wenn Sie einen v1beta1-Cluster bereitgestellt haben, aktualisieren Sie entsprechend den Wert von variables.vmclass auf die Ziel-VM-Klasse.
  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 TKG-Controller 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 Konfigurieren eines Texteditors für Kubectl.
  9. Überprüfen Sie, ob der Cluster aktualisiert wurde.
    v1alpha3-Cluster:
    kubectl get tanzukubernetescluster
    v1beta1-Cluster:
    kubectl get cluster