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

Sie können ein paralleles Update eines TKG-Clusters initiieren. Bearbeiten Sie dazu mithilfe des Befehls kubectl edit die Definition vmClass. Neue Knoten basierend auf der geänderten Klasse werden bereitgestellt, und die alten Knoten werden heruntergefahren.
Hinweis: Sie können den Befehl kubectl apply nicht verwenden, um einen bereitgestellten TKG-Cluster zu aktualisieren.

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. Listen Sie die verfügbaren VM-Klassen im vSphere-Namespace auf, in dem der Cluster bereitgestellt wird, und beschreiben Sie sie.
    kubectl get virtualmachineclass
    Hinweis: Die VM-Zielklasse muss dem vSphere-Namespace zugeordnet werden, in dem der TKG-Cluster bereitgestellt ist. Weitere Informationen zum Binden von VM-Klassen an vSphere-Namespaces finden Sie in der Dokumentation zum TKG- oder VM-Dienst.
  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.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          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.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          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