Upgrade von Arbeitslastclustern

In diesem Thema wird die Vorgehensweise zum Aktualisieren von TKG-Arbeitslastclustern (Tanzu Kubernetes Grid) erläutert. Für TKG mit einem eigenständigen Verwaltungscluster müssen Sie zuerst ein Upgrade des Verwaltungsclusters durchführen, der die Arbeitslastcluster verwaltet.

Wichtig

  • Informationen zum Upgrade von Arbeitslastclustern, die Sie mit Supervisor in vSphere 8 bereitgestellt haben, finden Sie unter Upgrade von durch Supervisor bereitgestellten Clustern (nur vSphere 8) in Erstellen und Verwalten von TKG 2.4-Arbeitslastclustern mit der Tanzu CLI.
  • Informationen zum Upgrade von Edge-Arbeitslastclustern, die lokal gespeicherte VM-Vorlagen verwenden, finden Sie unter Upgrade eines Edge-Clusters mit einer lokalen VM-Vorlage.
  • Informationen zum Upgrade von Arbeitslastclustern, die Sie anhand eines benutzerdefinierten Clustermanifests erstellt haben, finden Sie unter Upgrade von benutzerdefinierten Clustern.
  • Eigenständige Verwaltungs- und Arbeitslastcluster verwenden Clientzertifikate für die Authentifizierung von Clients. Diese Zertifikate sind ein Jahr lang gültig. Um sie zu erneuern, führen Sie mindestens einmal pro Jahr ein Upgrade Ihrer Cluster durch.

Voraussetzungen

Infrastrukturvoraussetzungen

Wichtig

Tanzu Kubernetes Grid v2.4.x ist die letzte Version von TKG, die das Upgrade vorhandener TKG-Arbeitslastcluster auf AWS und Azure unterstützt. Die Möglichkeit, TKG-Arbeitslastcluster auf AWS und Azure zu aktualisieren, wird in Tanzu Kubernetes Grid v2.5 entfernt.

Ab sofort empfiehlt VMware die Verwendung von Tanzu Mission Control zur Erstellung nativer AWS EKS- und Azure AKS-Cluster. Die Aktualisierung vorhandener TKG-Arbeitslastcluster auf AWS und Azure wird jedoch weiterhin für alle TKG-Versionen bis einschließlich TKG v2.4.x vollständig unterstützt.

Weitere Informationen finden Sie unter Veraltete TKG-Verwaltungs- und -Arbeitslastcluster in AWS und Azure in den Versionshinweisen zu VMware Tanzu Kubernetes Grid v2.4.

vSphere
Wenn Sie Cluster unter vSphere aktualisieren, müssen die entsprechenden Basisimage-Vorlagen-OVAs in vSphere als VM-Vorlagen verfügbar sein, bevor Sie Cluster auf eine Nicht-Standardversion von Kubernetes für Ihre Tanzu Kubernetes Grid-Version aktualisieren können. Informationen zum Importieren von OVA-Dateien in vSphere finden Sie auf der Registerkarte vSphere in Vorbereitungen für das Upgrade von Clustern.
AWS
Wenn Sie Cluster unter Amazon Web Services (AWS) aktualisieren, stehen die Amazon Linux 2-AMIs (Amazon-Maschinen-Images), die die unterstützten Kubernetes-Versionen enthalten, für alle AWS-Benutzer in allen unterstützten AWS-Regionen öffentlich zur Verfügung. Tanzu Kubernetes Grid verwendet automatisch das entsprechende AMI für die Kubernetes-Version, die Sie während des Upgrades angeben.
Azure
Wenn Sie Cluster unter Azure aktualisieren, stellen Sie sicher, dass Sie die Schritte auf der Registerkarte Azure in Vorbereitungen für das Upgrade von Clustern durchgeführt haben.


Vorgehensweise

Mit dem Upgrade-Vorgang wird die Version von Kubernetes in allen Steuerungsebenen- und Worker-Knoten Ihrer Arbeitslastcluster aktualisiert.

  1. Zum Anzeigen einer interaktiven Liste der verfügbaren Verwaltungscluster und Auswählen des Verwaltungsclusters, der die zu aktualisierenden Cluster verwaltet, führen Sie den Befehl tanzu context use aus:

    tanzu context use
    
  2. Führen Sie folgenden Befehl aus, um Ihre Arbeitslastcluster aufzulisten:

    tanzu cluster list --include-management-cluster -A
    

    Der Befehl tanzu cluster list mit den --include-management-cluster -A-Optionen zeigt die Kubernetes-Version an, die im Verwaltungscluster und allen von ihm verwalteten Clustern ausgeführt wird. In diesem Beispiel wird deutlich, dass der Verwaltungscluster bereits auf v1.27.5 aktualisiert wurde, auf den Arbeitslastclustern aber ältere Versionen von Kubernetes ausgeführt werden.

    NAME                 NAMESPACE   STATUS    CONTROLPLANE  WORKERS  KUBERNETES         ROLES       PLAN  TKR
    k8s-1-25-10-cluster  default     running   1/1           1/1      v1.25-10+vmware.1  <none>      dev   v1.25.10---vmware.1-tkg.1
    k8s-1-26-5-cluster   default     running   1/1           1/1      1.26.5+vmware.1    <none>      dev   v1.26.5---vmware.1-tkg.1
    mgmt-cluster         tkg-system  running   1/1           1/1      v1.27.5+vmware.1   management  dev   v1.27.5---vmware.1-tkg.1
    
  3. Zum Ermitteln der Kubernetes-Versionen, die von einem Verwaltungscluster bereitgestellt werden, führen Sie den Befehl tanzu kubernetes-release get aus:

    tanzu kubernetes-release get
    

    In dieser Ausgabe werden alle Kubernetes-Versionen, die Sie zum Bereitstellen von Clustern verwenden können, mit folgenden Hinweisen aufgelistet.

    • COMPATIBLE: Der aktuelle Verwaltungscluster kann Arbeitslastcluster mit dieser Tanzu Kubernetes-Version (tkr) bereitstellen.
    • UPDATES AVAILABLE: Diese tkr entspricht nicht der aktuellsten Version in der zugehörigen Kubernetes-Versionszeile. Alle Arbeitslastcluster, auf denen diese tkr-Version ausgeführt wird, können auf neuere Versionen aktualisiert werden.

    Beispiel:

    NAME                              VERSION                         COMPATIBLE  ACTIVE  UPDATES AVAILABLE
    v1.25.13---vmware.1-tiny.2-tkg.1  v1.25.13+vmware.1-tiny.2-tkg.1  True        True
    v1.25.13---vmware.2-tkg.1         v1.25.13+vmware.2-tkg.1         True        True
    v1.26.8---vmware.1-tiny.2-tkg.1   v1.26.8+vmware.1-tiny.2-tkg.1   True        True
    v1.26.8---vmware.2-tkg.1          v1.26.8+vmware.2-tkg.1          True        True
    v1.27.5---vmware.1-tiny.2-tkg.1   v1.27.5+vmware.1-tiny.2-tkg.1   True        True
    v1.27.5---vmware.1-tkg.1          v1.27.5+vmware.2-tkg.1          True        True
    
  4. Zum Ermitteln der neueren tkr-Versionen, auf die Sie einen Arbeitslastcluster unter einer älteren tkr-Version aktualisieren können, führen Sie den Befehl tanzu kubernetes-release available-upgrades get aus und geben die aktuelle tkr-Version an:

    tanzu kubernetes-release available-upgrades get v1.26.5---vmware.2-tkg.1
    

    Dieser Befehl listet alle verfügbaren Kubernetes-Versionen auf, auf die Sie Cluster aktualisieren können, die die angegebene Version verwenden.

    Sie können auch die tkr-Versionen ermitteln, die für einen bestimmten Arbeitslastcluster verfügbar sind, indem Sie den Clusternamen im Befehl tanzu cluster available-upgrades get angeben:

    tanzu cluster available-upgrades get k8s-1-26-5-cluster
    

    Dieser Befehl listet alle Kubernetes-Versionen auf, die mit dem angegebenen Cluster kompatibel sind.

    Sie können Nebenversionen nicht überspringen, wenn Sie ein Upgrade der tkr-Version durchführen. Sie können beispielsweise kein direktes Upgrade eines Clusters von v1.25.x auf v1.27.x durchführen. Sie müssen einen v1.25.x-Cluster auf v1.26.x aktualisieren, bevor Sie das Upgrade des Clusters auf v1.26.x durchführen.

  5. (Azure) Wenn der Cluster unter Azure ausgeführt wird, legen Sie die Umgebungsvariable AZURE_CLIENT_SECRET vor dem Upgrade des Clusters fest:

    export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
    
  6. (vSphere) Jeder Cluster, der Knoten-IPAM verwendet, benötigt vor dem Upgrade mindestens eine nicht zugewiesene IP-Adresse in seinem IP-Pool.

    1. Um zu überprüfen, ob ein Cluster Knoten-IPAM verwendet, suchen Sie in der Einstellung spec.topology.variables network des Clusterobjekts nach addressesFromPools:

      kubectl -n NAMESPACE get cluster CLUSTER-NAME -o json | jq '.spec.topology.variables[] | select(.name=="network")'
      

      Dabei sind CLUSTER-NAME und NAMESPACE der Name des Arbeitslastclusters und der Namespace des Verwaltungsclusters. Beispiel:

      kubectl -n default get cluster my-work-cluster -o json | jq '.spec.topology.variables[] | select(.name=="network")'
      {
        "name": "network",
        "value": {
          "addressesFromPools": [
            {
              "apiGroup": "ipam.cluster.x-k8s.io",
              "kind": "InClusterIPPool",
              "name": "mgmt-cluster-nimbus"
            }
          ],
          "ipv6Primary": false
        }
      } 
      
    2. Um zu überprüfen, ob der IP-Pool des Clusters über ungenutzte Adressen verfügt, vergleichen Sie die Gesamtzahl im Pool mit der Anzahl der derzeit zugewiesenen Adressen, wie vom folgenden Befehl ausgegeben:

      kubectl -n NAMESPACE get ipaddress | grep POOL-NAME | wc -l
      
  7. Führen Sie den Befehl tanzu cluster upgrade CLUSTER-NAME aus und geben Sie zur Bestätigung y ein. Zum Überspringen des Bestätigungsschritts geben Sie die Option --yes an.

    Um ein Upgrade des Clusters auf die Standardversion von Kubernetes für diese Tanzu Kubernetes Grid-Version durchzuführen, führen Sie den Befehl tanzu cluster upgrade ohne Optionen aus. In dieser Version wird v1.27.5 als Standardversion verwendet. Beispiel:

    tanzu cluster upgrade k8s-1-26-5-cluster
    

    Wenn der Cluster nicht im Namespace default ausgeführt wird, geben Sie die Option --namespace an:

    tanzu cluster upgrade CLUSTER-NAME --namespace NAMESPACE-NAME
    

    Wenn vor Abschluss eines Upgrades eine Zeitüberschreitung eintritt, führen Sie tanzu cluster upgrade erneut aus und geben Sie die Option --timeout mit einem Wert an, der größer als der Standardwert von 30 Minuten ist:

    tanzu cluster upgrade CLUSTER-NAME --timeout 45m0s
    
    Wichtig

    Vorgänge in Azure dauern manchmal länger als auf anderen Plattformen. Wenn Sie Cluster in Azure aktualisieren, legen Sie routinemäßig die Option --timeout fest, um Fehler zu vermeiden.

    Wenn mehrere Basis-VM-Images in Ihrem IaaS-Konto dieselbe Kubernetes-Version aufweisen, auf die Sie ein Upgrade durchführen, verwenden Sie die Option --os-name, um das gewünschte Betriebssystem anzugeben. Weitere Informationen finden Sie unter Auswahl eines Betriebssystems während des Cluster-Upgrades.

    Wenn Sie beispielsweise unter vSphere sowohl Photon- als auch Ubuntu-OVA-Vorlagen mit Kubernetes v1.27.5 hochgeladen haben, geben Sie --os-name ubuntu an, um ein Upgrade des Arbeitslastclusters zur Ausführung unter Ubuntu durchzuführen.

    tanzu cluster upgrade CLUSTER-NAME --os-name ubuntu
    

    Da Nebenversionen von tkr nicht übersprungen werden können, schlägt der Upgrade-Befehl fehl, wenn Sie ein Upgrade eines Clusters durchführen, der mehr als eine Nebenversion hinter der Standardversion liegt. Sie können beispielsweise kein direktes Upgrade von v1.25.x auf v1.27.x durchführen. Zum Aktualisieren eines Clusters auf eine Kubernetes-Version, die nicht als Standardversion für diese Tanzu Kubernetes Grid-Version fungiert, geben Sie die Option --tkr mit dem NAME der ausgewählten Version an, die oben von tanzu kubernetes-release get aufgelistet wird. Beispielsweise zum Aktualisieren des Clusters k8s-1-24-11-cluster von v1.25.13 auf v1.26.8.

    tanzu cluster upgrade k8s-1-25-13-cluster --tkr v1.26.8---vmware.1-tkg.1
    
  8. Führen Sie nach Abschluss des Upgrades den Befehl tanzu cluster list aus, um sicherzustellen, dass der Arbeitslastcluster aktualisiert wurde:

    tanzu cluster list --include-management-cluster -A
    
  9. Generieren Sie die Admin-kubeconfig neu:

    tanzu cluster kubeconfig get CLUSTER-NAME --admin
    

    Dabei gilt: CLUSTER-NAME ist der Name des Arbeitslastclusters.

    Wichtig

    Wenn Sie kubeconfig nach dem Upgrade nicht verlängern, können Sie nach Ablauf der Konfiguration nicht mehr auf den Cluster zugreifen.

  10. Wenn Sie einen LDAP- oder OIDC-Identitätsanbieter verwenden, bestätigen Sie, dass Sie sich mit kubectl beim Cluster authentifizieren können. Beispiel:

    kubectl get pods -A --kubeconfig my-cluster-credentials
    
  11. Führen Sie ein Upgrade aller CLI-verwalteten Pakete wie Contour, Fluent Bit oder Prometheus durch, die in Ihren Arbeitslastclustern ausgeführt werden. Weitere Informationen zum Upgrade von CLI-verwalteten Paketen finden Sie unter Aktualisieren eines Pakets.

    Wichtig

    Wenn Sie Prometheus auf einem Arbeitslastcluster installiert haben und den Arbeitslastcluster auf Kubernetes v1.25 upgraden, müssen Sie Prometheus mindestens auf Version 2.37.0+vmware.3-tkg.1 aktualisieren. Frühere Versionen des Prometheus-Pakets, wie z. B. Version 2.37.0+vmware.1-tkg.1, sind nicht mit Kubernetes 1.25 kompatibel.

Upgrade eines Edge-Clusters mit einer lokalen VM-Vorlage

Sie können den Befehl tanzu cluster upgrade nicht verwenden, um ein Upgrade der Kubernetes-Version eines Edge-Arbeitslastclusters mit einer lokalen VM-Vorlage durchzuführen, wie oben unter Angeben einer lokalen VM-Vorlage beschrieben.

Führen Sie stattdessen ein Upgrade der Kubernetes-Version des Edge-Arbeitslastclusters wie folgt durch:

  1. Laden Sie die neue VM-Vorlage in den lokalen vCenter hoch und notieren Sie sich ihren Bestandspfad, z. B. /dc0/vm/ubuntu-2004-kube-v1.27.5+vmware.1-tkg.1.

  2. Bearbeiten Sie das Manifest für das zu aktualisierende Cluster-Objekt:

    kubectl edit cluster CLUSTER-NAME
    

    Dabei ist CLUSTER-NAME der Name des Clusters

  3. Aktualisieren Sie unter spec.topology Folgendes:

    • Legen Sie version so fest, dass sie die neue Kubernetes-Version widerspiegelt.
    • Legen Sie alle zu aktualisierenden vcenter.template-Werte, clusterweit oder unter einzelnen Maschinenbereitstellungen, auf den Bestandspfad der neuen lokalen Vorlage fest.
  4. Speichern und beenden Sie, um die neuen Cluster-Objekteinstellungen anzuwenden.

Nächste Schritte

Sie können jetzt mit der Verwendung der Tanzu CLI zum Verwalten Ihrer Cluster fortfahren. Weitere Informationen finden Sie unter Erstellen und Verwalten von TKG 2.4-Arbeitslastclustern mit der Tanzu CLI.

check-circle-line exclamation-circle-line close-line
Scroll to top icon