Aktualisieren von Kubernetes und Knotenimages über mehrere Cluster hinweg mithilfe von Azure Kubernetes Fleet Manager

Gilt für: ✔️ Flottenmanager ✔️ Flottenmanager mit Hubcluster

Plattformadministratoren, die eine große Anzahl von Clustern verwalten, haben oft Probleme, die Updates mehrerer Cluster (z. B. das Upgrade von Knotenbetriebssystemimages oder Kubernetes-Versionen) auf sichere und vorhersehbare Weise durchzuführen. Um diese Herausforderung zu bewältigen, ermöglicht Ihnen Azure Kubernetes Fleet Manager (Fleet) die Orchestrierung von Updates über mehrere Cluster hinweg mithilfe von Updateausführungen.

Updateausführungen bestehen aus Phasen, Gruppen und Strategien und können manuell für einmalige Updates oder automatisch für fortlaufende regelmäßige Updates unter Verwendung von Auto-Upgrade-Profilen angewendet werden. Bei allen Updateausführungen (manuell oder automatisch) werden die Wartungsfenster für Mitgliedercluster berücksichtigt.

In diesem Handbuch wird beschrieben, wie Updateausführungen konfiguriert und manuell ausgeführt werden.

Voraussetzungen

  • Lesen Sie die konzeptionelle Übersicht über dieses Feature mit Erläuterungen zu Updatestrategien, -ausführungen, -stages und -gruppen, auf die in dieser Anleitung verwiesen wird.

  • Sie müssen eine Flottenressource mit einem oder mehreren Mitgliedsclustern haben. Falls nicht, folgen Sie dem Schnellstart, um eine Fleet-Ressource zu erstellen und Azure Kubernetes Service-Cluster (AKS) als Mitglieder aufzunehmen.

  • Legen Sie die folgenden Umgebungsvariablen fest:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    
  • Wenn Sie die Azure CLI-Anweisungen in diesem Artikel befolgen, müssen Sie Azure CLI Version 2.58.0 oder höher installiert haben. Informationen zum Ausführen einer Installation oder eines Upgrades finden Sie unter Installieren der Azure-Befehlszeilenschnittstelle.

  • Sie benötigen außerdem die fleet Azure CLI-Erweiterung, die Sie mit folgendem Befehl installieren können:

    az extension add --name fleet
    

    Führen Sie den Befehl az extension update aus, um auf die neueste Version der veröffentlichten Erweiterung zu aktualisieren:

    az extension update --name fleet
    

Definieren der Clusterupgradesequenz

Die Updateausführung unterstützt zwei Optionen für die Clusterupgradesequenz:

  • Nacheinander: Wenn Sie die Reihenfolge der Cluster-Upgrades nicht kontrollieren möchten, bietet one-by-one eine einfache Möglichkeit, alle Mitgliedscluster der Flotte nacheinander zu aktualisieren.
  • Steuerungssequenz von Clustern mithilfe von Updategruppen und Phasen: Wenn Sie die Clusterupgradesequenz steuern möchten, können Sie Membercluster in Updategruppen und Updatephasen strukturieren. Sie können diese Sequenz als Vorlage in Form einer Updatestrategie speichern. Sie können Updateausführungen später mithilfe der Updatestrategien erstellen, anstatt die Sequenz jedes Mal zu definieren, wenn Sie eine Updateausführung erstellen müssen.

Hinweis

Update führt geplante Wartungsfenster aus, die Sie auf AKS-Clusterebene festlegen. Weitere Informationen finden Sie unter Geplante Wartung über mehrere Mitgliedscluster hinweg. In diesem Artikel wird erläutert, wie Updateausführungen Mitgliedscluster behandeln, die mit geplanten Wartungsfenstern konfiguriert wurden.

Alle Cluster nacheinander aktualisieren

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Kubernetes Fleet Manager-Ressource.

  2. Wählen Sie im Dienstmenü unter EinstellungenMulticlusterupdate>Erstellen einer Ausführung aus.

  3. Geben Sie einen Namen für die Updateausführung ein, und wählen Sie dann Nacheinander für den Upgradetyp aus.

    Screenshot des Azure-Portalbereichs zum Erstellen von Updates wird ausgeführt, die Cluster einzeln in Azure Kubernetes Fleet Manager aktualisieren.

  4. Wählen Sie eine der folgenden Optionen für den Upgradebereich aus:

    • Kubernetes-Version für Steuerungsebene und Knotenpools
    • Kubernetes-Version nur für die Steuerungsebene des Clusters
    • Nur Knotenimageversion
  5. Wählen Sie eine der folgenden Optionen für das Knotenbildaus:

    • Letztes Bild: Aktualisiert jeden AKS-Cluster im Updateausführung auf das neueste Bild, das für diesen Cluster in seiner Region verfügbar ist.
    • Konsistentes Bild: Da es möglich ist, dass ein Updateausführung AKS-Cluster in mehreren Regionen hat, in denen die neuesten verfügbaren Knoten-Images unterschiedlich sein können (siehe Release Rracker für weitere Informationen). Der Updatelauf wählt das letzte gemeinsame Bild für alle diese Regionen aus, um Konsistenz zu erreichen.

    Wichtig

    Knotenbildversionen sind nur 90 Tage ab dem ursprünglichen Veröffentlichungsdatum gültig. Wenn die von einer Updateausführung ausgewählte Zielversion des Knotenimages das 90-Tage-Fenster überschreitet, wenn der Cluster aktualisiert wird, schlägt das Upgrade des Memberclusters möglicherweise fehl.

    Screenshot des Azure-Portalbereichs zum Erstellen von Updates. Der Abschnitt

  6. Klicken Sie auf Erstellen, um die Updateausführung zu erstellen.

  1. Erstellen Sie eine Aktualisierungsausführung mithilfe des Befehls az fleet updaterun create mit den ausgewählten Werten für die --upgrade-type und --node-image-selection Flags. Mit dem folgenden Befehl wird eine Aktualisierungsausführung erstellt, die die Kubernetes-Version sowohl für Steuerebenen- als auch für Knotenpools aktualisiert und das neueste Knotenbild verwendet, das für jeden Cluster in seiner Region verfügbar ist.

    Das Flag --upgrade-type unterstützt die folgenden Werte:

    • Full aktualisiert die Kubernetes-Version für die Steuerungsebene und die Knotenpools zusammen mit den Knotenimages.
    • ControlPlaneOnly aktualisiert nur die Kubernetes-Version für die Steuerungsebene des Clusters.
    • NodeImageOnly aktualisiert nur die Knotenimages.

    Das Flag --node-image-selection unterstützt die folgenden Werte:

    • Latest: Aktualisiert jeden AKS-Cluster in der Updateausführung auf das neueste Bild, das für diesen Cluster in seiner Region verfügbar ist.
    • Consistent:Da es möglich ist, dass ein Update-Lauf AKS-Cluster in mehreren Regionen hat, in denen die neuesten verfügbaren Knotenbilder unterschiedlich sein können (siehe release tracker für weitere Informationen). Der Updatelauf wählt das letzte gemeinsame Bild für alle diese Regionen aus, um Konsistenz zu erreichen.
    az fleet updaterun create \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name run-1 \
     --upgrade-type Full \
     --kubernetes-version 1.26.0 \
     --node-image-selection Latest
    
  2. Starten Sie die Aktualisierung mit dem Befehl az fleet updaterun start.

    az fleet updaterun start \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name run-1
    

Beim Erstellen einer Updateausführung haben Sie die Möglichkeit, den Bereich der Updateausführung zu steuern. Das Flag --upgrade-type unterstützt die folgenden Werte:

  • ControlPlaneOnly aktualisiert nur die Kubernetes-Version für die Steuerungsebene des Clusters.
  • Full aktualisiert die Kubernetes-Version für die Steuerungsebene und die Knotenpools zusammen mit den Knotenimages.
  • NodeImageOnly aktualisiert nur die Knotenimages.

Das Flag --node-image-selection unterstützt auch die folgenden Werte:

  • Letzte: Aktualisiert jeden AKS-Cluster im Updatelauf auf das neueste Imagev, das für diesen Cluster in seiner Region verfügbar ist.
  • Konsistent: Da es möglich ist, dass ein Updatelauf AKS-Cluster in mehreren Regionen hat, in denen die neuesten verfügbaren Knoten-Images unterschiedlich sein können (siehe Release Rracker für weitere Informationen). Der Updatelauf wählt das letzte gemeinsame Bild für alle diese Regionen aus, um Konsistenz zu erreichen.

Wichtig

Knotenbildversionen sind nur 90 Tage ab dem ursprünglichen Veröffentlichungsdatum gültig. Wenn die von einer Updateausführung ausgewählte Zielversion des Knotenimages das 90-Tage-Fenster überschreitet, wenn der Cluster aktualisiert wird, schlägt das Upgrade des Memberclusters möglicherweise fehl.

Starten einer Updateausführung:

Führen Sie den folgenden Befehl aus, um Updateausführungen zu starten:

az fleet updaterun start \
 --resource-group $GROUP \
 --fleet-name $FLEET \
 --name <run-name>

Aktualisieren von Clustern mithilfe von Gruppen und Phasen

Sie können eine Updateausführung mithilfe von Updatestages definieren, um die Anwendung von Updates auf verschiedene Updategruppen sequenziell zu ordnen. Beispielsweise kann eine erste Updatephase Mitgliedscluster der Testumgebung aktualisieren, und eine zweite Updatephase würde dann Mitgliedscluster der Produktionsumgebung aktualisieren. Sie können auch angeben, welche Genehmigungen vor oder nach jeder Phase erforderlich sind, und eine Wartezeit zwischen den Updatephasen. Sie können diese Sequenz als Vorlage in Form einer Updatestrategie speichern.

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Kubernetes Fleet Manager-Ressource.

  2. Wählen Sie im Dienstmenü unter EinstellungenMulticlusterupdate>Erstellen einer Ausführung aus.

  3. Geben Sie einen Namen für die Updateausführung ein, und wählen Sie dann Phasen für den Updatesequenztyp aus.

    Screenshot: Azure-Portalseite zum Auswählen des Phasenmodus innerhalb der Updateausführung

  4. Wählen Sie " Stufe erstellen" aus, und geben Sie dann einen Namen für die Phase ein, und legen Sie Genehmigungen und eine Wartezeit zwischen Phasen fest, falls gewünscht.

    Screenshot: Seite im Azure-Portal zum Erstellen einer Phase und zum Definieren einer Wartezeit.

  5. Wählen Sie die Updategruppen, die Sie in diese Phase einbeziehen wollen. Sie können auch die Reihenfolge der Updategruppen angeben, wenn Sie sie in einer bestimmten Reihenfolge aktualisieren möchten. Wählen Sie Erstellen, wenn Sie fertig sind.

    Screenshot: Seite im Azure-Portal zum Erstellen von Phasen, auf der die Auswahl von Upgradegruppen angezeigt wird.

  6. Wählen Sie eine der folgenden Optionen für den Upgradebereich aus:

    • Kubernetes-Version für Steuerungsebene und Knotenpools
    • Kubernetes-Version nur für die Steuerungsebene des Clusters
    • Nur Knotenimageversion
  7. Wählen Sie eine der folgenden Optionen für das Knotenbildaus:

    • Letztes Bild: Aktualisiert jeden AKS-Cluster im Updateausführung auf das neueste Bild, das für diesen Cluster in seiner Region verfügbar ist.
    • Konsistentes Bild: Da es möglich ist, dass ein Updateausführung AKS-Cluster in mehreren Regionen hat, in denen die neuesten verfügbaren Knoten-Images unterschiedlich sein können (siehe Release Rracker für weitere Informationen). Der Updatelauf wählt das letzte gemeinsame Bild für alle diese Regionen aus, um Konsistenz zu erreichen.

    Screenshot des Azure-Portalbereichs zum Erstellen von Updates. Der Abschnitt

  8. Klicken Sie auf Erstellen, um die Updateausführung zu erstellen.

    Das Angeben von Phasen und deren Reihenfolge bei jeder Erstellung einer Updateausführung kann sich wiederholen und ist mühsam. Updatestrategien vereinfachen diesen Prozess, indem Sie Vorlagen für Updateausführungen speichern können. Weitere Informationen finden Sie unter Erstellen eines Updatelaufs mithilfe von Updatestrategien.

  9. Wählen Sie im Menü Multiclusterupdate die Updateausführung aus, und wählen Sie dann Start aus.

  1. Erstellen Sie eine JSON-Datei, um die Phasen und Gruppen für die Updateausführung zu definieren. Hier ist ein Beispiel für eine Eingabe aus der Stages-Datei (example-stages.json):

    {
        "stages": [
            {
                "name": "stage1",
                "groups": [
                    {
                        "name": "group-1a"
                    },
                    {
                        "name": "group-1b"
                    },
                    {
                        "name": "group-1c"
                    }
                ],
                "afterStageWaitInSeconds": 3600
            },
            {
                "name": "stage2",
                "groups": [
                    {
                        "name": "group-2a"
                    },
                    {
                        "name": "group-2b"
                    },
                    {
                        "name": "group-2c"
                    }
                ]
            }
        ]
    }
    
  2. Erstellen Sie eine Aktualisierungsausführung mithilfe des Befehls az fleet updaterun create, wobei das --stages Flag auf den Namen Der JSON-Datei und die ausgewählten Werte für die --upgrade-type und --node-image-selection Flags festgelegt ist. Mit dem folgenden Befehl wird eine Aktualisierungsausführung erstellt, die die Kubernetes-Version sowohl für Steuerebenen- als auch für Knotenpools aktualisiert und das neueste Knotenbild verwendet, das für jeden Cluster in seiner Region verfügbar ist.

    Das Flag --upgrade-type unterstützt die folgenden Werte:

    • Full aktualisiert die Kubernetes-Version für die Steuerungsebene und die Knotenpools zusammen mit den Knotenimages.
    • ControlPlaneOnly aktualisiert nur die Kubernetes-Version für die Steuerungsebene des Clusters.
    • NodeImageOnly aktualisiert nur die Knotenimages.

    Das Flag --node-image-selection unterstützt die folgenden Werte:

    • Latest: Aktualisiert jeden AKS-Cluster in der Updateausführung auf das neueste Bild, das für diesen Cluster in seiner Region verfügbar ist.
    • Consistent:Da es möglich ist, dass ein Update-Lauf AKS-Cluster in mehreren Regionen hat, in denen die neuesten verfügbaren Knotenbilder unterschiedlich sein können (siehe release tracker für weitere Informationen). Der Updatelauf wählt das letzte gemeinsame Bild für alle diese Regionen aus, um Konsistenz zu erreichen.
    az fleet updaterun create \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name run-1 \
     --upgrade-type Full \
     --kubernetes-version 1.26.0 \
     --node-image-selection Latest \
     --stages example-stages.json
    
  3. Starten Sie die Aktualisierung mit dem Befehl az fleet updaterun start.

    az fleet updaterun start \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name run-1
    

Erstellen eines Updatelaufs mithilfe von Updatestrategien

Zum Erstellen einer Aktualisierungsausführung müssen Sie die Phasen, Gruppen, die Reihenfolge jedes Mal angeben. Updatestrategien vereinfachen diesen Prozess, indem Sie Vorlagen für Updateausführungen speichern können.

Hinweis

Es ist möglich, mehrere Updateläufe mit eindeutigen Namen aus derselben Updatestrategie zu erstellen.

Sie können eine Updatestrategie mit einer der folgenden Methoden erstellen:

Speichern Sie eine Updatestrategie beim Erstellen eines Updatelaufs

  • Speichern einer Updatestrategie beim Erstellen einer Updateausführung mithilfe des Azure-Portals:

    Screenshot des Azure-Portals mit Aktualisierungsausführungsphasen, die als Updatestrategie gespeichert werden.

Verwalten einer Updateausführung

In den folgenden Abschnitten wird erläutert, wie Sie eine Updateausführung mithilfe des Azure-Portals und der Azure CLI verwalten.

  • Auf der Seite Multiclusterupdates der Flottenressource können Sie Starten einer Updateausführung, die entweder in Nicht gestartet oder Status Fehlgeschlagen:

    Screenshot: Starten einer Updateausführung im Zustand „Nicht gestartet“ im Azure-Portal

  • Auf der Seite "Multiclusterupdate" der Flottenressource können Sie die Ausführung eines aktuell ausgeführten oder ausstehenden Updates beenden:

    Screenshot: Beenden einer Updateausführung im Zustand „Wird ausgeführt“ im Azure-Portal

  • Innerhalb einer Updateausführung im Zustand Nicht gestartet, Fehlerhaft oder Wird ausgeführt können Sie eine beliebige Phase auswählen und das Upgrade überspringen:

    Screenshot: Überspringen eines Upgrades für eine bestimmte Phase in einer Updateausführung Azure-Portal

    Analog dazu können Sie auch das Upgrade auf Updategruppen- oder Mitgliedsclusterebene überspringen.

  • Sie können eine Aktualisierungsausführung starten, die sich entweder im Status Nicht gestartet oder Fehlgeschlagen befindet, indem Sie den az fleet updaterun start Befehl verwenden:

    az fleet updaterun start \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name <run-name>
    
  • Sie können einen aktuell ausgeführten Update-Vorgang mit dem Befehl az fleet updaterun stop:

    az fleet updaterun stop \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name <run-name>
    
  • Sie können Aktualisierungsphasen oder Gruppen überspringen, indem Sie sie im --targets Flag mit dem az fleet updaterun skip Befehl spezifizieren:

    az fleet updaterun skip \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name <run-name> \
     --targets Group:my-group-name Stage:my-stage-name
    

    Weitere Informationen finden Sie unter Status der Updateausführung für Ausführungen/Phasen/Gruppen.

Automatisieren von Updateausführungen mithilfe von Profilen für automatische Upgrades

Automatische Aktualisierungsprofile werden verwendet, um Aktualisierungen automatisch in Mitgliedsclustern auszuführen, wenn neue Kubernetes- oder Knotenbildversionen verfügbar gemacht werden.

Weitere Informationen zum Konfigurieren von Profilen für automatische Upgrades finden Sie unter Automatisieren von Upgrades von Kubernetes und Knotenbildern mit Azure Kubernetes Fleet Manager.

Generieren einer Updateausführung aus einem Profil für automatische Upgrades

Wenn Sie ein Profil für das automatische Upgrade erstellen, können sich Ihre Cluster auf verschiedenen Versionen von Kubernetes oder Knotenimages befinden. Je nach ausgewähltem Kanal für das automatische Upgrade kann es einige Zeit dauern, bevor eine neue Version das automatische Upgrade auslöst, um eine Updateausführung zu erstellen und auszuführen.

Mit dem automatischen Upgrade können Sie jederzeit mithilfe des az fleet autoupgradeprofile generate-update-run Befehls ein neues Update generieren. Die resultierende Updateausführung basiert auf der von AKS veröffentlichten Kubernetes- oder Knotenimageversion.

az fleet autoupgradeprofile generate-update-run \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name $AUTOUPGRADEPROFILE

Die generierte Updateausführung wird nicht automatisch gestartet, sodass Sie es überprüfen können. Wenn Sie mit der generierten Aktualisierung zufrieden sind, können Sie es starten und verwalten, indem Sie die Schritte zum Verwalten einer Updateausführung ausführen.

Hinweis

Wenn Sie manuell eine Aktualisierungsausführung aus einem Profil für automatische Upgrades generieren, ist die resultierende Updateausführung möglicherweise bereits vorhanden. Dies geschieht, weil der Name des Updatelaufs auf der Upgradespezifikation des Automatischen Upgradeprofils basiert, die sich nur ändert, wenn Eigenschaften wie das Knotenimage oder die Kubernetes-Version geändert werden. In diesem Szenario wird die vorhandene Updateausführung nicht geändert.

Nächste Schritte