Definieren von wiederverwendbaren Updatestrategien mithilfe von Azure Kubernetes Fleet Manager

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

Administratoren können die Reihenfolge der Updates für flottenverwaltete Cluster steuern, indem sie eine Reihe von Phasen und Gruppen definieren. Sie können konfigurieren, wann Genehmigungen und Pausen innerhalb dieser Phasen und Gruppen auftreten sollen. Die gesamte Konfiguration kann als Updatestrategie gespeichert werden, die unabhängig von Updateausführungen oder automatischen Upgrades verwaltet werden kann, sodass Strategien nach Bedarf wiederverwendet werden können.

In diesem Artikel wird beschrieben, wie Sie Updatestrategien mithilfe von Gruppen und Stufen definieren.

Ein Diagramm mit einer beispielhaften Updatestrategie mit zwei Updatephasen. Jede Updatephase enthält zwei Updategruppen. Jede Updategruppe enthält zwei Mitgliedercluster.

Voraussetzungen

  • Lesen Sie die konzeptionelle Übersicht über Flottenupdates, die eine Erläuterung von Updateausführungen, Phasen, Gruppen und Strategien enthält, auf die in diesem Handbuch verwiesen wird.

  • Sie müssen eine Flottenressource mit einem oder mehreren Mitgliedsclustern haben. Falls nicht, folgen Sie dem Schnellstart, um eine Flottenressource 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>
    export CLUSTERID=<aks-cluster-resource-id>
    export STRATEGY=<strategy-name>
    
  • Wenn Sie den Anweisungen der Azure CLI in diesem Artikel folgen, benötigen Sie Azure CLI, Version 2.70.0 oder höher, installiert. Informationen zum Ausführen einer Installation oder eines Upgrades finden Sie unter Installieren der Azure-Befehlszeilenschnittstelle.

  • Sie benötigen auch die fleet Azure CLI-Erweiterung Version 1.6.0 oder höher, die Sie installieren können, indem Sie den folgenden Befehl ausführen:

    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
    

Erstellen einer Updatestrategie mithilfe von Updategruppen

Cluster können in Updatestrategien ausgewählt werden, indem sie einer einzelnen Updategruppe zugewiesen werden. Sie können eine Updatestrategie definieren, die diese Updategruppen Stufen zuweist. Innerhalb einer Updatephase werden Updates parallel auf jede Updategruppe angewendet. Innerhalb einer Updategruppe werden Mitgliedercluster sequenziell aktualisiert.

Hinweis

Ein Flottenmitglied kann nur Teil einer Updategruppe sein, aber einer Updategruppe können mehrere Flottenmitglieder zugewiesen sein. Eine Aktualisierungsgruppe selbst ist kein separater Ressourcentyp. Updategruppen sind nur Zeichenfolgen, die Verweise von den Flottenmitgliedern darstellen. Wenn also alle Flottenmitglieder mit Verweisen auf eine gemeinsame Updategruppe gelöscht werden, ist diese spezifische Updategruppe nicht mehr vorhanden.

Zuweisen von Clustern zum Aktualisieren von Gruppen

Zuweisen zur Gruppe beim Hinzufügen eines Mitgliedsclusters zur Flotte

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

  2. Wählen Sie im Dienstmenü unter EinstellungenMitgliedscluster>Hinzufügen aus.

    Screenshot der Azure-Portalseite für Azure Kubernetes Fleet Manager zum Hinzufügen von Mitgliedsclustern.

  3. Wählen Sie den Cluster aus, den Sie hinzufügen möchten, und wählen Sie dann Weiter: Überprüfen + Hinzufügen aus.

  4. Geben Sie den Namen der Updategruppe ein, der Sie den Cluster zuweisen möchten, und wählen Sie dann Hinzufügen aus.

    Screenshot der Azure-Portalseite für Azure Kubernetes Fleet Manager – Überprüfung und Hinzufügen von Schritten für Membercluster.

Weisen Sie einem Mitgliedercluster eine Updategruppe zu, wenn Sie den Mitgliedscluster zur Flotte hinzufügen, indem Sie den Befehl az fleet member create verwenden, wobei der Parameter --update-group auf den Namen der Updategruppe festgelegt ist.

az fleet member create \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name member1 \
    --member-cluster-id $CLUSTERID \
    --update-group group-1a

Zuweisen eines vorhandenen Flottenmitglieds zu einer Updategruppe

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

  2. Wählen Sie im Dienstmenü unter Einstellungen die Option Mitgliedscluster aus.

  3. Wählen Sie die Cluster aus, den/die Sie einer Updategruppe zuweisen möchten, und wählen Sie dann Updategruppe zuweisen aus.

    Screenshot: Seite im Azure-Portal zum Zuweisen von vorhandenen Mitgliedsclustern zu einer Gruppe.

  4. Geben Sie den Namen der Updategruppe ein, der Sie den Cluster zuweisen möchten, und wählen Sie dann Zuweisen aus.

    Screenshot: Seite im Azure-Portal für Mitgliedscluster, auf der das Formular zum Aktualisieren der Gruppe eines Mitgliedsclusters angezeigt wird.

Weisen Sie ein vorhandenes Flottenmitglied einer Updategruppe mithilfe des Befehls az fleet member update zu, wobei das --update-group Flag auf den Namen der Updategruppe festgelegt ist.

az fleet member update \
 --resource-group $GROUP \
 --fleet-name $FLEET \
 --name member1 \
 --update-group group-1

Erstellen einer Updatestrategie

Eine Updatestrategie besteht aus einer oder mehreren Phasen, in denen eine Phase eine oder mehrere Updategruppen enthalten kann.

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

  2. Wählen Sie im Dienstmenü unter EinstellungenMulticlusterupdate>Strategien und dann Erstellen aus.

  3. Geben Sie einen Namen für den Server ein.

  4. Wenn Sie die Seite zum ersten Mal anzeigen, wird ein Erklärungsdiagramm zur Updatestrategie angezeigt, das ihnen dabei helfen kann, zu visualisieren, wie Strategien funktionieren.

    Screenshot: Erstellung einer Updatestrategie im Azure-Portal

  5. Wählen Sie Phase erstellen aus, und geben Sie Folgendes ein:

    • Der Phasenname - die Stufe benennen - muss für alle Phasennamen in der Strategie eindeutig sein.
    • (Optional) Phasengenehmigungen – Wählen Sie diese Option aus, wenn Sie vor dem Start dieser Phase oder nach Abschluss einer Genehmigung auf eine Genehmigung warten möchten. Weitere Informationen finden Sie unter Hinzufügen von Genehmigungen zum Aktualisieren von Gruppen und Phasen.
    • (Optional) Nach der Phase anhalten: Wählen Sie diese Option aus, wenn Sie eine Pause definieren möchten, bevor Sie zur nächsten Phase wechseln.
    • (Optional) Pausedauer – Wählen Sie eine vordefinierte Dauer aus, oder geben Sie einen benutzerdefinierten Wert in Sekunden ein.

    Screenshot des Azure-Portals mit der Erstellung der Azure Kubernetes Fleet Manager-Updatestrategiephase.

  6. Weisen Sie der Phase eine oder mehrere Aktualisierungsgruppe zu, und wählen Sie dann Erstellen aus.

    Hinweis

    Die maximale Anzahl von Updategruppen in jeder Updatephase beträgt 50.

    Screenshot des Azure-Portals mit der Erstellung der Updatestrategiephase von Azure Kubernetes Fleet Manager und dem Auswählen von Updategruppen, die einbezogen werden sollen.

In diesem Szenario erstellen wir Phasen und Gruppen, um die Details zuzuordnen, die für den Azure-Portalprozess verwendet werden.

  1. Erstellen Sie eine JSON-Datei, um die Phasen und Gruppen für die Updateausführung zu definieren. Phasen werden sequenziell in der Reihenfolge ausgeführt, in der sie in der JSON-Datei angezeigt werden. Gruppen werden innerhalb jeder Phase parallel ausgeführt, daher ist die Sortierung nicht wichtig. Die folgende Beispieldatei (example-stages.json) definiert eine Strategie mit zwei Phasen und enthält optionale maxConcurrency Einstellungen:

    {
        "stages": [
            {
                "name": "stage-1",
                "maxConcurrency": "7",
                "groups": [
                    {
                        "name": "group-1",
                        "maxConcurrency": "3"
                    },
                    {
                        "name": "group-2",
                        "maxConcurrency": "50%"
                    }
                ],
                "afterStageWaitInSeconds": 300
            },
            {
                "name": "stage-2",
                "maxConcurrency": "100%",
                "groups": [
                    {
                        "name": "group-3",
                        "maxConcurrency": "2"
                    }
                ]
            }
        ]
    }
    

    Hinweis

    Das maxConcurrency Feld ist optional und steuert, wie viele Cluster gleichzeitig auf Stufe oder Gruppenebene aktualisiert werden können. Verwenden Sie einen größeren Wert, um Cluster in der gesamten Flotte schneller zu aktualisieren, oder einen kleineren Wert für einen kontrollierteren Rollout, der den Explosionsradius begrenzt, falls Probleme auftreten.

    In diesem Beispiel setzt stage-1maxConcurrency auf "7", wodurch bis zu "7" Cluster in dieser Phase gleichzeitig aktualisiert werden können. Innerhalb von stage-1 und group-1 wird die Gleichzeitigkeit auf "3" Cluster begrenzt, was bedeutet, dass bis zu "3" innerhalb dieser Gruppe gleichzeitig aktualisiert werden können. group-2 ermöglicht bis zu "50%" seinen Clustern gleichzeitig ein Upgrade (z. B. wenn die Gruppe vier Cluster enthält, kann bis zu 2 gleichzeitig aktualisiert werden).

    Werte können eine feste ganze Zahl (z "3". B. ) oder ein Prozentsatz (z. B "100%". ) sein. Wenn diese Angabe weggelassen wird, wendet das System Standardwerte an. Ausführliche Informationen zur Auflösung dieser Werte und deren Obergrenzen finden Sie unter "Maximale Parallelität (Vorschau)".

  2. Erstellen Sie eine neue Updatestrategie mithilfe des Befehls az fleet updatestrategy create, wobei das --stages Flag auf den Namen Ihrer JSON-Datei festgelegt ist.

    az fleet updatestrategy create \
     --resource-group $GROUP \
     --fleet-name $FLEET \
     --name $STRATEGY \
     --stages example-stages.json
    

Nächste Schritte

Sie können eine Updatestrategie als Teil eines manuellen Updatelaufs oder eines Profils für automatische Upgrades verwenden. Siehe: