Automatisk zonplacering i Azure Kubernetes Service (förhandsversion)

Automatisk zonplacering i Azure Kubernetes Service (AKS) väljer dynamiskt den bästa uppsättningen tillgänglighetszoner för en nodpool. Du behöver inte ange zonerna manuellt för varje region och VM SKU-kombination. När du skapar eller uppdaterar en nodpool med --zones autoplacerar AKS virtuella datorer i tillgänglighetszoner som har kapacitet för den begärda SKU:n i målregionen och tillämpar en maximal instansprocent på 50% per zon.

Den här artikeln visar hur du skapar eller uppdaterar AKS-nodpooler som använder automatisk zonplacering.

Så här fungerar automatisk zonplacering

När du anger --zones auto (eller availabilityZones: ["auto"] i agentpoolprofilen) använder AKS principen Azure Automatisk zonplacering för att välja zoner och distribuera noder. Du behöver inte ange zonnummer eller underhålla olika zonkonfigurationer för varje region och VM SKU.

Automatisk zonplacering fungerar på följande sätt:

  1. AKS utvärderar vilka tillgänglighetszoner i målregionen som kan stödja den begärda virtuella dator-SKU:n.
  2. AKS väljer först upp till tre tillgängliga zoner och placerar noder enligt principen för automatisk zonplacering. Som standard får ingen enskild zon innehålla fler än 50% av nodpoolen.
  3. Under senare utskalningsåtgärder utvärderar AKS zontillgängligheten igen. Om Azure lägger till en zon i regionen eller gör vm-SKU:n tillgänglig i en annan zon kan AKS placera nya noder i den zonen när placeringsprincipen och den tillgängliga kapaciteten tillåter det. Du behöver inte uppdatera konfigurationen av nodpoolen.

Important

Gränsen på 50% är en maximal koncentration per zon, inte en garanti för att noderna alltid är jämnt fördelade. Den faktiska fördelningen beror på antalet noder, de zoner som stöder den valda virtuella datorns SKU och vilken kapacitet som är tillgänglig när noder etableras. En skapande- eller skalningsåtgärd kan fortfarande misslyckas om Azure inte kan allokera de begärda noderna samtidigt som gränsen per zon respekteras.

Den här metoden hanterar vanliga smärtpunkter med manuellt angivande av zoner:

  • Regionagnostiska distributioner: Använd konsekventa konfigurationer mellan regioner utan att oroa dig för skillnader i zontillgänglighet.
  • Förbättrad motståndskraft: Uppnå automatiskt redundans för flera zoner för bättre programtillgänglighet.
  • Automatisk zonexpansion: Utnyttja nya tillgänglighetszoner sömlöst när regioner expanderar (till exempel från tre till fyra zoner).
  • Minskade distributionsfel: Minska skapande- och skalningsallokeringsfel som orsakas av kapacitetsbegränsningar i en specifik zon baserat på din arbetsbelastningstolerans för zonutjämning.

Begränsningar och överväganden

  • Automatisk zonplacering stöder skapande och uppdatering av både Virtual Machine Scale Sets-baserade och Virtual Machines-baserade nodpooler.
  • Standardgränsen per zon är 50% noder.
  • Automatisk zonplacering är avsedd för zonspannande arbetsbelastningar. För zonanpassade arbetsbelastningar (där varje nodpool är låst till en enda zon) fortsätt att uttryckligen ange zonen genom att använda --zones 1, --zones 2 och så vidare.

Förutsättningar

Important

AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:

  • AKS API-version 2026-01-02-preview eller senare.

  • Den senaste versionen av aks-preview Azure CLI-tillägget.

  • En region som stöder tillgänglighetszoner. Mer information finns i Listan över Azure-regioner.

  • Funktionsflaggan VmssAutomaticZonePlacement som är registrerad i din prenumeration. Registrera funktionsflaggan az feature register med hjälp av kommandot :

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

    Kontrollera registreringsstatusen az feature show med hjälp av kommandot :

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

    Vänta tills kommandot returneras Registered innan du fortsätter.

Skapa ett AKS-kluster med automatisk zonplacering (förhandsversion)

Skapa ett nytt AKS-kluster med en systemnodpool baserad på Virtual Machine Scale Sets eller Virtual Machines som använder automatisk zonplacering med kommandot az aks create tillsammans med --zones auto:

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

AKS väljer de zoner som har kapacitet för Standard_D8s_v5 i målregionen och sprider de 10 noderna över dem, utan att en enda zon innehåller mer än 50% av noderna.

Lägga till en nodpool med automatisk zonplacering (förhandsversion)

Lägg till en ny nodpool i ett befintligt kluster, baserad på Virtual Machine Scale Sets eller Virtual Machines, med kommandot az aks nodepool add med --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

Uppdatera en befintlig nodpool så att den använder automatisk zonplacering (förhandsversion)

Uppdatera en befintlig nodpool som är baserad på Virtual Machine Scale Sets eller Virtual Machines så att den använder automatisk zonplacering med kommandot az aks nodepool update med --zones auto:

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

AKS uppdaterar den befintliga nodpoolen via en löpande åtgärd:

  1. AKS lägger till överspänningsnoder som använder automatisk zonplacering.
  2. AKS spärrar av och tömmer de befintliga noderna.
  3. AKS tar bort befintliga noder när deras arbetsbelastningar har flyttats till överspänningsnoderna.

Åtgärden följer följande uppgraderingsinställningar som du konfigurerar i nodpoolen:

  • Maximal ökning (--max-surge): Styr hur många extra noder AKS lägger till under uppdateringen. Ett högre värde slutför uppdateringen snabbare men kräver mer beräkningskvot och IP-kapacitet för undernätet.
  • Tidsgräns för noddränering (--drain-timeout): Styr hur länge AKS väntar på vräkning av poddar från en nod innan dräneringen misslyckas.
  • Stabiliseringstid för nod (--node-soak-duration): Styr hur länge AKS väntar efter att en ny nod har blivit redo innan den fortsätter till nästa omgång.

Innan du startar uppdateringen kontrollerar du att du har tillräckligt med beräkningskvot och IP-kapacitet för undernätet för överspänningsnoderna och att poddavbrottsbudgetarna tillåter att noderna töms.

Kontrollera zonens placering

När du har skapat eller uppdaterat klustret eller nodpoolen kontrollerar du de zoner som AKS har valt med hjälp az aks show av kommandot .

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

Du kan också använda kubectl för att bekräfta nodfördelningen mellan zoner.

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

Exempel på utdata:

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