Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Posizionamento automatico della zona in Servizio Azure Kubernetes (AKS) seleziona in modo dinamico il set migliore di zone di disponibilità per un pool di nodi. Non è necessario specificare manualmente le zone per ogni combinazione di aree e SKU della macchina virtuale. Quando si crea o si aggiorna un pool di nodi con --zones auto, AKS distribuisce le macchine virtuali (VM) nelle zone di disponibilità che dispongono della capacità necessaria per lo SKU richiesto nell'area geografica di destinazione e applica una percentuale massima del 50% di istanze per zona.
Questo articolo illustra come creare o aggiornare i pool di nodi AKS che utilizzano il posizionamento automatico delle zone.
Come funziona il posizionamento automatico delle zone
Quando si specifica --zones auto (o availabilityZones: ["auto"] nel profilo del pool di agenti), AKS usa il criterio di posizionamento automatico nelle zone di Azure Compute per selezionare le zone e distribuire i nodi tra di esse. Non è necessario specificare i numeri di zona o mantenere configurazioni di zona diverse per ogni area e SKU di macchina virtuale.
Il posizionamento automatico della zona funziona come segue:
- AKS valuta quali zone di disponibilità nella regione di destinazione possono supportare lo SKU di VM richiesto.
- AKS seleziona inizialmente fino a tre zone disponibili e posiziona i nodi in base ai criteri automatici di posizionamento nelle zone. Per impostazione predefinita, nessuna zona singola può contenere più di 50% del pool di nodi.
- Nelle successive operazioni di scalabilità orizzontale, AKS rivaluta la disponibilità della zona. Se Azure aggiunge una zona all'area o rende disponibile lo SKU della macchina virtuale in un'altra zona, il servizio Azure Kubernetes potrebbe inserire nuovi nodi in tale zona quando i criteri di posizionamento e la capacità disponibile lo consentono. Non è necessario aggiornare la configurazione del pool di nodi.
Importante
Il limite di 50% è una concentrazione massima per zona, non garantisce che i nodi vengano sempre distribuiti equamente. La distribuzione effettiva dipende dal numero di nodi, dalle zone che supportano lo SKU della macchina virtuale selezionato e dalla capacità disponibile quando viene effettuato il provisioning dei nodi. Un'operazione di creazione o scalabilità può comunque non riuscire se Azure non è in grado di allocare i nodi richiesti rispettando il limite per zona.
Questo approccio risolve i punti di dolore comuni con la specifica manuale delle zone:
- Distribuzioni indipendenti dall'area: usare configurazioni coerenti tra aree senza doversi preoccupare delle differenze di disponibilità della zona.
- Miglioramento della resilienza: ottenere automaticamente la ridondanza multizone per una migliore disponibilità delle applicazioni.
- Espansione automatica della zona: sfruttare facilmente le nuove zone di disponibilità quando le aree si espandono (ad esempio, da tre a quattro zone).
- Riduzione degli errori di distribuzione: riduce gli errori di allocazione durante la creazione e il ridimensionamento causati da vincoli di capacità in una zona specifica, in base alla tolleranza del carico di lavoro al bilanciamento tra zone.
Limitazioni e considerazioni
- Il posizionamento automatico della zona supporta la creazione e l'aggiornamento di pool di nodi basati su set di scalabilità di macchine virtuali e Macchine virtuali.
- Il limite predefinito per zona è 50% di nodi.
- Il posizionamento automatico nelle zone è destinato ai carichi di lavoro che si estendono su più zone. Per i carichi di lavoro allineati alla zona (in cui ogni pool di nodi viene aggiunto a una singola zona), continuare a specificare la zona in modo esplicito usando
--zones 1,--zones 2e così via.
Prerequisiti
Importante
Le funzionalità in anteprima di AKS sono disponibili in modalità self-service, su base volontaria. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime di AKS sono coperte solo parzialmente dall'assistenza clienti nei limiti del possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:
Versione dell'API di AKS
2026-01-02-previewo successiva.La versione più recente dell'estensione interfaccia della riga di comando di Azure aks-preview.
Una regione con supporto per le zone di disponibilità. Per altre informazioni, vedere l'elenco delle aree di Azure.
Il flag di funzionalità
VmssAutomaticZonePlacementregistrato nel tuo abbonamento. Registrare il flag di funzionalità usando ilaz feature registercomando :az feature register \ --namespace Microsoft.Compute \ --name VmssAutomaticZonePlacementControllare lo stato della registrazione usando il
az feature showcomando :az feature show \ --namespace Microsoft.Compute \ --name VmssAutomaticZonePlacement \ --query properties.state \ --output tsvAttendere che il comando venga restituito
Registeredprima di continuare.
Creare un cluster AKS con posizionamento automatico nelle zone (Anteprima)
Creare un nuovo cluster AKS con un pool di nodi di sistema basato su set di scalabilità di macchine virtuali o su Macchine virtuali che usa il posizionamento automatico nelle zone usando il comando az aks create con --zones auto:
az aks create \
--resource-group example-rg \
--name example-cluster \
--node-vm-size Standard_D8s_v5 \
--node-count 10 \
--zones auto
AKS seleziona le zone con capacità per Standard_D8s_v5 nell'area geografica di destinazione e distribuisce i 10 nodi tra di esse, senza che una singola zona contenga più del 50% dei nodi.
Aggiungere un pool di nodi con posizionamento automatico della zona (anteprima)
Aggiungere un nuovo pool di nodi basato su set di scalabilità di macchine virtuali o basato su Macchine virtuali a un cluster esistente usando il az aks nodepool add comando con --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
Aggiorna un pool di nodi esistente per utilizzare il posizionamento automatico nelle zone (Anteprima)
Aggiorna un pool di nodi esistente basato su set di scalabilità di macchine virtuali o su Macchine virtuali per usare il posizionamento automatico nelle zone usando il comando az aks nodepool update con --zones auto:
az aks nodepool update \
--resource-group example-rg \
--cluster-name example-cluster \
--name nodepool1 \
--zones auto
AKS aggiorna il pool di nodi esistente tramite un'operazione di aggiornamento progressivo:
- AKS aggiunge nodi aggiuntivi che usano l'assegnazione automatica della zona.
- AKS isola e svuota i nodi esistenti.
- AKS rimuove i nodi esistenti dopo che i carichi di lavoro sono stati spostati nei nodi aggiuntivi.
L'operazione rispetta le impostazioni di aggiornamento seguenti configurate nel pool di nodi:
-
Max surge (
--max-surge): Controlla quanti nodi aggiuntivi AKS aggiunge durante l'aggiornamento. Un valore superiore completa l'aggiornamento più velocemente, ma richiede una maggiore quota di calcolo e capacità IP della subnet. -
Timeout di drenaggio del nodo (
--drain-timeout): controlla per quanto tempo AKS attende l'espulsione dei pod da un nodo prima che l'operazione di drenaggio non riesca. -
Durata di stabilizzazione del nodo (
--node-soak-duration): determina per quanto tempo AKS attende dopo che un nuovo nodo è pronto prima di continuare con il lotto successivo.
Prima di avviare l'aggiornamento, assicurarsi di disporre di una quota di calcolo sufficiente e di una capacità di indirizzi IP della subnet adeguata per i nodi aggiuntivi e che i budget di interruzione dei pod consentano di drenare i nodi.
Verificare la posizione della zona
Dopo aver creato o aggiornato il cluster o il pool di nodi, verificare le zone selezionate da AKS usando il comando az aks show.
az aks show \
--name example-cluster \
--resource-group example-rg \
--query agentPoolProfiles[].availabilityZones \
--output tsv
È anche possibile usare kubectl per confermare la distribuzione dei nodi tra le zone.
kubectl get nodes -o custom-columns='NAME:metadata.name, REGION:metadata.labels.topology\.kubernetes\.io/region, ZONE:metadata.labels.topology\.kubernetes\.io/zone'
Output di esempio:
NAME REGION ZONE
aks-nodepool1-12345678-vmss000000 eastus eastus-1
aks-nodepool1-12345678-vmss000001 eastus eastus-2
aks-nodepool1-12345678-vmss000002 eastus eastus-3
...