Herbruikbare updatestrategieën definiëren met Azure Kubernetes Fleet Manager

Beheerders kunnen de volgorde van updates voor door Fleet beheerde clusters beheren door een reeks fasen en groepen te definiëren. Ze kunnen configureren wanneer goedkeuringen en pauzes moeten plaatsvinden binnen die fasen en groepen. De volledige configuratie kan worden opgeslagen als een updatestrategie die onafhankelijk van updateuitvoeringen of automatische upgrades kan worden beheerd, zodat strategieën naar behoefte opnieuw kunnen worden gebruikt.

In dit artikel wordt beschreven hoe u updatestrategieën definieert met behulp van groepen en fasen.

Een diagram met een voorbeeld van een updatestrategie met twee updatefasen. Elke updatefase bevat twee updategroepen. Elke updategroep bevat twee lidclusters.

Vereisten

  • Lees het conceptuele overzicht van Fleet-updates, met een uitleg van updateuitvoeringen, fasen, groepen en strategieën waarnaar in deze handleiding wordt verwezen.

  • U moet een Fleet-resource hebben met een of meer lidclusters. Zo niet, volg de quickstart om een Fleet-resource te maken en Azure Kubernetes Service (AKS)-clusters als leden toe te voegen.

  • Stel de volgende omgevingsvariabelen in:

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export CLUSTERID=<aks-cluster-resource-id>
    export STRATEGY=<strategy-name>
    
  • Als u de Azure CLI-instructies in dit artikel volgt, moet Azure CLI versie 2.70.0 of hoger zijn geïnstalleerd. Zie Azure CLI installeren om de CLI te installeren of upgraden.

  • U hebt ook de fleet Azure CLI-extensie versie 1.6.0 of hoger nodig, die u kunt installeren door de volgende opdracht uit te voeren:

    az extension add --name fleet
    

    Voer de az extension update opdracht uit om bij te werken naar de nieuwste versie van de extensie die is uitgebracht:

    az extension update --name fleet
    

Clusters voor uw strategie selecteren

Er zijn twee manieren om te selecteren welke clusters zijn opgenomen in elke fase en groep van uw updatestrategie om de updatevolgorde te beheren:

  • Lidlabels (aanbevolen): wijs labels toe aan elk vlootlid en gebruik memberSelector deze om leden door deze labels te selecteren. Elk lid kan meerdere labels hebben.
  • Updategroepen: Wijs een updategroep toe aan elk vlootlid en definieer vervolgens groepen in uw strategie die overeenkomen met die groepsnamen. Elk lid kan slechts tot één groep behoren.

Een updatestrategie maken met ledenkiezers (preview)

Lidlabels zijn de aanbevolen methode voor het selecteren van clusters in uw updatestrategieën, omdat ze meer flexibiliteit bieden. Zie Groepsclusters met lidlabels voor conceptuele informatie.

Belangrijk

Preview-functies van Azure Kubernetes Fleet Manager zijn beschikbaar op basis van selfservice, opt-in. Previews worden geleverd 'zoals het is' en 'voor zover beschikbaar' en zijn uitgesloten van de serviceovereenkomsten en beperkte garantie. Azure Kubernetes Fleet Manager-previews vallen gedeeltelijk onder klantondersteuning op basis van best effort. Zodoende zijn deze functies niet bedoeld voor productiegebruik.

Labels toepassen op lidclusters

Labels toepassen bij het toevoegen van een lidcluster aan de vloot

Pas labels toe op uw vlootleden met behulp van de az fleet member create opdracht. In het volgende voorbeeld worden twee labels toegepast op het lidcluster: env=staging en tier=frontend:

az fleet member create \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name member1 \
    --member-cluster-id $CLUSTERID \
    --labels "env=staging tier=frontend"

Labels toepassen op een bestaand vlootlid

Labels toepassen op uw vlootleden met behulp van de az fleet member update opdracht

az fleet member update \
 --resource-group $GROUP \
 --fleet-name $FLEET \
 --name member1 \
 --labels "env=staging tier=frontend"

Een updatestrategie maken

Een updatestrategie bestaat uit een of meer fasen, waarbij een fase een of meer updategroepen kan bevatten.

  1. Maak een JSON-bestand om de fasen en groepen voor de updateuitvoering te definiëren. Fasen worden opeenvolgend uitgevoerd in de volgorde waarin ze worden weergegeven in het JSON-bestand. Binnen elke fase worden groepen parallel uitgevoerd. In het volgende voorbeeldbestand (example-labels-strategy.json) wordt een strategie gedefinieerd met twee fasen die worden gebruikt om clusters te selecteren op basis van memberSelector hun labels en optionele maxConcurrency instellingen bevat:

    • De staging fase maakt gebruik van een faseniveau memberSelector om alle clusters met het label env=staging te selecteren en één impliciete groep te maken.
    • De production fase maakt gebruik van een faseniveau memberSelector om alle clusters met het label env=productionvooraf te filteren en definieert vervolgens twee groepen, elk met een eigen memberSelector groep om clusters op het tier label te selecteren.

    Wanneer memberSelector het veld van een groep is ingesteld, wordt het veld van de groep name alleen gebruikt als weergave-id voor statusrapportage en logboekregistratie en niet meer gebruikt voor selectie van vlootleden op basis van een updategroep.

    {
        "stages": [
            {
                "name": "staging",
                "memberSelector": { "byLabel": "env=staging" },
                "maxConcurrency": "1",
                "afterStageWaitInSeconds": 600
            },
            {
                "name": "production",
                "memberSelector": { "byLabel": "env=production" },
                "maxConcurrency": "4",
                "groups": [
                    {
                        "name": "frontend",
                        "memberSelector": { "byLabel": "tier=frontend" },
                        "maxConcurrency": "3"
                    },
                    {
                        "name": "backend",
                        "memberSelector": { "byLabel": "tier=backend" },
                        "maxConcurrency": "3"
                    }
                ]
            }
        ]
    }
    

Notitie

Het maxConcurrency veld is optioneel en bepaalt hoeveel clusters gelijktijdig kunnen worden bijgewerkt op fase- of groepsniveau. Gebruik een grotere waarde om clusters sneller in uw vloot te upgraden, of een kleinere waarde voor een gecontroleerdere uitrol die de impact beperkt als er problemen optreden.

Wanneer een fase memberSelector zonder groepen (zoals staging) wordt gebruikt, vormen alle overeenkomende leden samen één impliciete groep en regelt de fase met maxConcurrency de gelijktijdigheid rechtstreeks. Wanneer groepen worden gedefinieerd (zoals), productionfungeert het faseniveau maxConcurrency als een algemeen plafond voor alle groepen.

In dit voorbeeld stelt de staging fase maxConcurrency in op "1", zodat stagingclusters één voor één worden bijgewerkt. In de production fase kunnen maximaal "4" clusters gelijktijdig uitgevoerd worden, waarbij de frontend en backend groepen elk zijn beperkt tot "3".

Waarden kunnen een vast geheel getal zijn (bijvoorbeeld "3") of een percentage (bijvoorbeeld "50%"). Als u dit weglaat, past het systeem standaardwaarden toe. Zie Maximale gelijktijdigheid (preview) voor meer informatie over hoe deze waarden worden omgezet en de bovengrens.

  1. Maak een nieuwe updatestrategie met behulp van de az fleet updatestrategy create opdracht waarbij de --stages vlag is ingesteld op de naam van uw JSON-bestand.

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

Een updatestrategie maken met behulp van updategroepen

Clusters kunnen ook worden geselecteerd in updatestrategieën door ze toe te wijzen aan één updategroep. U kunt een updatestrategie definiëren waarmee deze updategroepen aan fasen worden toegewezen. Binnen een updatefase worden updates parallel toegepast op elke updategroep. Binnen een updategroep worden lidclusters opeenvolgend bijgewerkt.

Notitie

Een vlootlid kan slechts deel uitmaken van één updategroep, maar aan een updategroep kunnen meerdere vlootleden zijn toegewezen. Een updategroep zelf is geen afzonderlijk resourcetype. Updategroepen zijn alleen tekenreeksen die verwijzingen van de vlootleden vertegenwoordigen. Dus als alle vlootleden met verwijzingen naar een gemeenschappelijke updategroep worden verwijderd, houdt die specifieke updategroep op te bestaan.

Clusters toewijzen om groepen bij te werken

Toewijzen aan groep bij het toevoegen van lidcluster aan de vloot

  1. Navigeer in Azure Portal naar uw Azure Kubernetes Fleet Manager-resource.

  2. Selecteer Lidclusterstoevoegen in het servicemenu onder >.

    Schermopname van de pagina Azure Portal voor Azure Kubernetes Fleet Manager voor het toevoegen van lidclusters.

  3. Selecteer het cluster dat u wilt toevoegen en selecteer vervolgens Volgende: Beoordelen en toevoegen.

  4. Voer de naam in van de updategroep waaraan u het cluster wilt toewijzen en selecteer vervolgens Toevoegen.

    Schermopname van de pagina Azure Portal voor Azure Kubernetes Fleet Manager-beoordeling en stap voor lidclusters toevoegen.

Een bestaand vlootlid toewijzen aan een updategroep

  1. Navigeer in Azure Portal naar uw Azure Kubernetes Fleet Manager-resource.

  2. Selecteer lidclusters in het servicemenu onder Instellingen.

  3. Selecteer de clusters die u wilt toewijzen aan een updategroep en selecteer vervolgens Updategroep toewijzen

    Schermopname van de pagina Azure Portal voor het toewijzen van bestaande lidclusters aan een groep.

  4. Voer de naam in van de updategroep waaraan u het cluster wilt toewijzen en selecteer vervolgens Toewijzen.

    Schermopname van de pagina Azure Portal voor lidclusters met het formulier voor het bijwerken van de groep van een lidcluster.

Een updatestrategie maken

Een updatestrategie bestaat uit een of meer fasen, waarbij een fase een of meer updategroepen kan bevatten.

  1. Navigeer in Azure Portal naar uw Azure Kubernetes Fleet Manager-resource.

  2. Selecteer in het servicemenu onder Instellingen de optie Strategieën voor het bijwerken>van meerdere clusters en vervolgens Maken.

  3. Voer een naam in voor de strategie.

  4. De eerste keer dat u de pagina bekijkt, wordt een uitlegdiagram voor de updatestrategie weergegeven, waarmee u kunt visualiseren hoe strategieën werken.

    Een schermopname van Azure Portal met het maken van een updatestrategie.

  5. Selecteer Maak Fase en voer het volgende in:

    • Fasenaam - de naam van de fase - deze moet uniek zijn voor alle fasenamen in de strategie.
    • (Optioneel) Fasegoedkeuringen : selecteer deze optie als u wilt wachten op een goedkeuring voordat deze fase wordt gestart of nadat deze is voltooid. Zie Goedkeuringen toevoegen om groepen en fasen bij te werken voor meer informatie.
    • (Optioneel) Onderbreken na fase : selecteer deze optie als u een pauze wilt definiëren voordat u naar de volgende fase gaat.
    • (Optioneel) Onderbrekingsduur : selecteer een vooraf gedefinieerde duur of voer een aangepaste waarde in seconden in.

    Een schermopname van de Azure-portal die de creatie van de updatestrategie van Azure Kubernetes Fleet Manager laat zien.

  6. Wijs een of meer Updategroepen toe aan de fase en selecteer Maken.

    Notitie

    Het maximum aantal updategroepen in elke updatefase is 50.

    Een schermopname van Azure Portal met het maken van de strategiefase voor het bijwerken van Azure Kubernetes Fleet Manager, waarbij updategroepen worden geselecteerd die u wilt opnemen.

Volgende stappen

U kunt een updatestrategie gebruiken als onderdeel van een handmatige updateuitvoering of een profiel voor automatische upgrade. Zie: