Automatische plaatsing van zones in Azure Kubernetes Service (Preview)

Automatische zoneplaatsing in Azure Kubernetes Service (AKS) selecteert dynamisch de beste set beschikbaarheidszones voor een knooppuntgroep. U hoeft de zones niet handmatig op te geven voor elke combinatie van regio's en VM-SKU's. Wanneer u een knooppuntgroep maakt of bijwerkt met --zones auto, plaatst AKS virtuele machines (VM's) in beschikbaarheidszones die capaciteit hebben voor de aangevraagde SKU in de doelregio en past een maximaal exemplaarpercentage van 50% per zone toe.

In dit artikel leest u hoe u AKS-knooppuntgroepen maakt of bijwerkt die gebruikmaken van automatische zoneplaatsing.

Hoe automatische zoneplaatsing werkt

Wanneer u --zones auto opgeeft (of availabilityZones: ["auto"] in het agentgroepprofiel), gebruikt AKS het automatische zoneplaatsingsbeleid van Azure Compute om zones te selecteren en knooppunten te verdelen. U hoeft geen zonenummers op te geven of verschillende zoneconfiguraties te onderhouden voor elke regio en VM-SKU.

Automatische zoneplaatsing werkt als volgt:

  1. AKS evalueert welke beschikbaarheidszones in de doelregio de aangevraagde VM-SKU kunnen ondersteunen.
  2. AKS selecteert in eerste instantie maximaal drie beschikbare zones en plaatst knooppunten volgens het beleid voor automatische zoneplaatsing. Standaard kan geen enkele zone meer dan 50% van de knooppuntgroep bevatten.
  3. Tijdens latere uitschaalbewerkingen evalueert AKS de beschikbaarheid van de zone opnieuw. Als Azure een zone toevoegt aan de regio of de VM-SKU beschikbaar maakt in een andere zone, kan AKS nieuwe knooppunten in die zone plaatsen wanneer het plaatsingsbeleid en de beschikbare capaciteit dit toestaan. U hoeft de configuratie van de knooppuntgroep niet bij te werken.

Important

De limiet van 50% is een maximale concentratie per zone, niet een garantie dat knooppunten altijd gelijk worden verdeeld. De werkelijke distributie is afhankelijk van het aantal knooppunten, de zones die de geselecteerde VM-SKU ondersteunen en de capaciteit die beschikbaar is wanneer knooppunten worden ingericht. Een maak- of schaalbewerking kan nog steeds mislukken als Azure de aangevraagde knooppunten niet kan toewijzen met inachtneming van de limiet per zone.

Deze aanpak behandelt veelvoorkomende pijnpunten met het handmatig opgeven van zones:

  • Regioagnostische implementaties: gebruik consistente configuraties tussen regio's zonder dat u zich zorgen hoeft te maken over verschillen in beschikbaarheid van zones.
  • Verbeterde tolerantie: automatisch redundantie met meerdere zone's bereiken voor betere beschikbaarheid van toepassingen.
  • Automatische zone-uitbreiding: naadloos gebruikmaken van nieuwe beschikbaarheidszones wanneer regio's worden uitgebreid (bijvoorbeeld van drie tot vier zones).
  • Verminderde implementatiefouten: Verminder fouten bij het maken en schalen van toewijzingen die worden veroorzaakt door capaciteitsbeperkingen in een specifieke zone op basis van uw workloadtolerantie voor zonegebonden taakverdeling.

Beperkingen en overwegingen

  • Automatische zoneplaatsing ondersteunt het maken en bijwerken van zowel Virtual Machine Scale Sets- als Virtual Machines-knooppuntgroepen.
  • De standaardlimiet per zone is 50% knooppunten.
  • Automatische zoneplaatsing is bedoeld voor zone-overschrijdende workloads. Voor zone-afgestemde workloads (waarbij elke knooppuntgroep is vastgemaakt aan één zone), gaat u verder met het expliciet opgeven van de zone met behulp van --zones 1, --zones 2enzovoort.

Prerequisites

Important

AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals het is' en 'voor zover beschikbaar' en zijn uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning naar best vermogen. Zodoende zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:

  • AKS API-versie 2026-01-02-preview of hoger.

  • De nieuwste versie van de extensie aks-preview Azure CLI.

  • Een regio die beschikbaarheidszones ondersteunt. Zie de lijst met Azure-regio's voor meer informatie.

  • De VmssAutomaticZonePlacement functievlag die is geregistreerd in uw abonnement. Registreer de functievlag met behulp van de az feature register opdracht:

    az feature register \
      --namespace Microsoft.Compute \
      --name VmssAutomaticZonePlacement
    

    Controleer de registratiestatus met behulp van de az feature show opdracht:

    az feature show \
      --namespace Microsoft.Compute \
      --name VmssAutomaticZonePlacement \
      --query properties.state \
      --output tsv
    

    Wacht totdat de opdracht wordt geretourneerd Registered voordat u doorgaat.

Een AKS-cluster maken met automatische zoneplaatsing (preview)

Maak een nieuw AKS-cluster met een op Virtual Machine Scale Sets of Virtual Machines gebaseerde systeemknooppuntgroep die gebruikmaakt van automatische zoneplaatsing met behulp van de az aks create opdracht met--zones auto:

az aks create \
  --resource-group example-rg \
  --name example-cluster \
  --node-vm-size Standard_D8s_v5 \
  --node-count 10 \
  --zones auto

AKS kiest de zones waarvoor capaciteit is Standard_D8s_v5 in de doelregio en verspreidt de 10 knooppunten ertussen, zonder dat één zone meer dan 50% van de knooppunten bevat.

Een knooppuntgroep toevoegen met automatische zoneplaatsing (preview)

Voeg een nieuwe op Virtual Machine Scale Sets of Virtual Machines gebaseerde knooppuntgroep toe aan een bestaand cluster met behulp van de az aks nodepool add opdracht met--zones auto:

az aks nodepool add \
  --resource-group example-rg \
  --cluster-name example-cluster \
  --name userpoolauto \
  --node-vm-size Standard_D8s_v5 \
  --node-count 6 \
  --zones auto

Een bestaande knooppuntgroep bijwerken voor het gebruik van automatische zoneplaatsing (preview)

Werk een bestaande op Virtual Machine Scale Sets of Virtual Machines gebaseerde knooppuntgroep bij om automatische zoneplaatsing te gebruiken met behulp van de az aks nodepool update opdracht met--zones auto:

az aks nodepool update \
  --resource-group example-rg \
  --cluster-name example-cluster \
  --name nodepool1 \
  --zones auto

AKS werkt de bestaande nodegroep bij via een gefaseerde update:

  1. AKS voegt piekknooppunten toe die gebruikmaken van automatische zoneplaatsing.
  2. AKS-cordons en leegt de bestaande knooppunten.
  3. AKS verwijdert de bestaande knooppunten nadat hun workloads naar de piekknooppunten zijn verplaatst.

De bewerking hanteert de volgende upgrade-instellingen die u instelt voor de knooppuntgroep:

  • Maximale piek (--max-surge): bepaalt hoeveel extra knooppunten AKS toevoegt tijdens de update. Een hogere waarde voltooit de update sneller, maar vereist meer rekenquotum- en subnet-IP-capaciteit.
  • Time-out voor knooppuntafvoer (--drain-timeout): bepaalt hoe lang AKS wacht op verwijdering van pods op een knooppunt voordat de afvoerbewerking mislukt.
  • Inweekduur van knooppunt (--node-soak-duration): bepaalt hoe lang AKS wacht nadat een nieuw knooppunt gereed is voordat wordt doorgegaan naar de volgende batch.

Voordat u met de update begint, moet u ervoor zorgen dat u voldoende rekenquotum en subnet-IP-capaciteit hebt voor de surgeknooppunten en dat uw podverstoringsbudgetten toestaan dat knooppunten worden leeggemaakt.

Zoneplaatsing controleren

Nadat u het cluster of de knooppuntgroep hebt gemaakt of bijgewerkt, controleert u de zones die door AKS zijn geselecteerd met behulp van de az aks show opdracht.

az aks show \
 --name example-cluster \
 --resource-group example-rg \
 --query agentPoolProfiles[].availabilityZones \
 --output tsv

U kunt kubectl ook gebruiken om de distributie van knooppunten over de zones te bevestigen.

kubectl get nodes -o custom-columns='NAME:metadata.name, REGION:metadata.labels.topology\.kubernetes\.io/region, ZONE:metadata.labels.topology\.kubernetes\.io/zone'

Voorbeelduitvoer:

NAME                                REGION   ZONE
aks-nodepool1-12345678-vmss000000   eastus   eastus-1
aks-nodepool1-12345678-vmss000001   eastus   eastus-2
aks-nodepool1-12345678-vmss000002   eastus   eastus-3
...