Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die automatische Zonenplatzierung in Azure Kubernetes Service (AKS) wählt dynamisch die besten Verfügbarkeitszonen für einen Knotenpool aus. Sie müssen die Zonen nicht manuell für jede Region und VM-SKU-Kombination angeben. Wenn Sie einen Knotenpool mit --zones auto erstellen oder aktualisieren, platziert AKS virtuelle Maschinen (VMs) in Verfügbarkeitszonen, die über Kapazität für die angeforderte SKU in der Zielregion verfügen, und wendet einen maximalen Instanzanteil von 50 % pro Zone an.
In diesem Artikel erfahren Sie, wie Sie AKS-Knotenpools erstellen oder aktualisieren, die die automatische Zonenplatzierung verwenden.
Funktionsweise der automatischen Zonenplatzierung
Wenn Sie --zones auto angeben (oder availabilityZones: ["auto"] im Agentpoolprofil), verwendet AKS die Azure Compute-Richtlinie für die automatische Zonenzuweisung, um Zonen auszuwählen und Knoten zu verteilen. Sie müssen keine Zonennummern angeben oder unterschiedliche Zonenkonfigurationen für jede Region und VM-SKU verwalten.
Die automatische Zonenplatzierung funktioniert wie folgt:
- AKS bewertet, welche Verfügbarkeitszonen in der Zielregion die angeforderte VM-SKU unterstützen können.
- AKS wählt zunächst bis zu drei verfügbare Zonen aus und platziert Knoten gemäß der Richtlinie für die automatische Zonenplatzierung. Standardmäßig kann keine einzelne Zone mehr als 50% des Knotenpools enthalten.
- Bei späteren Skalierungsvorgängen überprüft AKS die Zonenverfügbarkeit erneut. Wenn Azure der Region eine Zone hinzufügt oder die VM-SKU in einer anderen Zone verfügbar macht, platziert AKS möglicherweise neue Knoten in dieser Zone, wenn die Platzierungsrichtlinie und verfügbare Kapazität dies zulassen. Sie müssen die Knotenpoolkonfiguration nicht aktualisieren.
Important
Der Grenzwert von 50% ist eine maximale Konzentration pro Zone, nicht garantiert, dass Knoten immer gleichmäßig verteilt werden. Die tatsächliche Verteilung hängt von der Knotenanzahl, den Zonen ab, die die ausgewählte VM-SKU unterstützen, und der kapazität, die verfügbar ist, wenn Knoten bereitgestellt werden. Ein Erstellungs- oder Skalierungsvorgang kann weiterhin fehlschlagen, wenn Azure die angeforderten Knoten nicht zuordnen kann, während der Grenzwert pro Zone berücksichtigt wird.
Bei diesem Ansatz werden häufige Schmerzpunkte behandelt, bei denen Zonen manuell angegeben werden:
- Regionsagnostische Bereitstellungen: Verwenden Sie konsistente Konfigurationen in allen Regionen, ohne sich Gedanken über Zonenverfügbarkeitsunterschiede machen zu müssen.
- Verbesserte Resilienz: Automatisches Erreichen von Multizone-Redundanz für eine bessere Anwendungsverfügbarkeit.
- Automatische Zonenerweiterung: Nahtlose Nutzung neuer Verfügbarkeitszonen beim Erweitern von Regionen (z. B. von drei bis vier Zonen).
- Verringerte Bereitstellungsfehler: Reduzieren Sie Erstellungs- und Skalierungszuordnungsfehler, die durch Kapazitätseinschränkungen in einer bestimmten Zone verursacht werden, basierend auf Ihrer Workloadtoleranz des zonalen Ausgleichs.
Einschränkungen und Überlegungen
- Die automatische Zonenplatzierung unterstützt das Erstellen und Aktualisieren von Virtual Machine Scale Sets-basierten und Virtual Machines-basierten Knotenpools.
- Die Standardgrenze pro Zone beträgt 50% von Knoten.
- Die automatische Zonenplatzierung ist für Zonenübergreifende Workloads vorgesehen. Geben Sie bei zonenbezogenen Workloads (bei denen jeder Knotenpool fest einer einzelnen Zone zugeordnet ist) die Zone weiterhin explizit an, indem Sie
--zones 1,--zones 2usw. verwenden.
Voraussetzungen
Important
AKS-Preview-Funktionen stehen auf Selbstbedienungs- und Opt-in-Basis zur Verfügung. Vorschauversionen werden „im Istzustand“ und „wie verfügbar“ bereitgestellt und sind von den Service Level Agreements und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:
AKS-API-Version
2026-01-02-previewoder höher.Die neueste Version der Azure CLI-Erweiterung "aks-preview".
Eine Region, die Verfügbarkeitszonen unterstützt. Weitere Informationen finden Sie in der Liste der Azure-Regionen.
Das
VmssAutomaticZonePlacementFeature-Flag, das in Ihrem Abonnement registriert ist. Registrieren Sie das Feature-Flag mithilfe desaz feature registerBefehls:az feature register \ --namespace Microsoft.Compute \ --name VmssAutomaticZonePlacementÜberprüfen Sie den Registrierungsstatus mithilfe des
az feature showBefehls:az feature show \ --namespace Microsoft.Compute \ --name VmssAutomaticZonePlacement \ --query properties.state \ --output tsvWarten Sie, bis der Befehl zurückgegeben wird
Registered, bevor Sie fortfahren.
Erstellen eines AKS-Clusters mit automatischer Zonenplatzierung (Vorschau)
Erstellen Sie einen neuen AKS-Cluster mit einem auf Virtual Machine Scale Sets oder Virtual Machines basierenden Systemknotenpool, bei dem die automatische Zonenplatzierung verwendet wird, indem Sie den az aks createBefehl mit --zones auto verwenden:
az aks create \
--resource-group example-rg \
--name example-cluster \
--node-vm-size Standard_D8s_v5 \
--node-count 10 \
--zones auto
AKS wählt die Zonen aus, die in der Zielregion Kapazität für Standard_D8s_v5 haben, und verteilt die 10 Knoten auf diese Zonen, sodass keine einzelne Zone mehr als 50 % der Knoten beherbergt.
Hinzufügen eines Knotenpools mit automatischer Zonenplatzierung (Vorschau)
Fügen Sie einem vorhandenen Cluster einen neuen Virtual Machine Scale Sets-basierten oder Virtual Machines-basierten Knotenpool hinzu, indem Sie den Befehl az aks nodepool add mit --zones auto verwenden:
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
Aktualisieren eines vorhandenen Knotenpools zur Verwendung der automatischen Zonenplatzierung (Vorschau)
Aktualisieren Sie einen bestehenden, auf Virtual Machine Scale Sets oder Virtual Machines basierenden Knotenpool, sodass er die automatische Zonenplatzierung verwendet, indem Sie den Befehl az aks nodepool update mit --zones auto verwenden:
az aks nodepool update \
--resource-group example-rg \
--cluster-name example-cluster \
--name nodepool1 \
--zones auto
AKS aktualisiert den vorhandenen Knotenpool über einen rollierenden Vorgang:
- AKS fügt Überspannungsknoten hinzu, die die automatische Zonenplatzierung verwenden.
- AKS sperrt die vorhandenen Knoten und entleert sie.
- AKS entfernt die vorhandenen Knoten, nachdem ihre Arbeitsauslastungen auf die Überspannungsknoten verschoben wurden.
Der Vorgang berücksichtigt die folgenden Upgradeeinstellungen, die Sie im Knotenpool konfigurieren:
-
Max. Auftrieb (
--max-surge): Steuert, wie viele zusätzliche Knoten AKS während der Aktualisierung hinzugefügt werden. Ein höherer Wert schließt das Update schneller ab, erfordert jedoch mehr Computekontingent und Subnetz-IP-Kapazität. -
Node drain timeout (
--drain-timeout): Steuert, wie lange AKS auf die Entfernung von Pods von einem Knoten wartet, bevor der Drainvorgang fehlschlägt. -
Wartezeit für den Knoten (
--node-soak-duration): Steuert, wie lange AKS wartet, nachdem ein neuer Knoten bereit ist, bevor mit der nächsten Gruppe fortgefahren wird.
Bevor Sie das Update starten, stellen Sie sicher, dass Sie über ausreichend Compute-Kontingent und genügend Subnetz-IP-Kapazität für die zusätzlichen Knoten verfügen und dass Ihre Pod Disruption Budgets das Leeren der Knoten zulassen.
Platzierung der Zone überprüfen
Überprüfen Sie nach dem Erstellen oder Aktualisieren des Cluster- oder Knotenpools die Zonen, die AKS mithilfe des az aks show Befehls ausgewählt haben.
az aks show \
--name example-cluster \
--resource-group example-rg \
--query agentPoolProfiles[].availabilityZones \
--output tsv
Sie können auch kubectl verwenden, um die Knotenverteilung auf die Zonen zu überprüfen.
kubectl get nodes -o custom-columns='NAME:metadata.name, REGION:metadata.labels.topology\.kubernetes\.io/region, ZONE:metadata.labels.topology\.kubernetes\.io/zone'
Beispielausgabe:
NAME REGION ZONE
aks-nodepool1-12345678-vmss000000 eastus eastus-1
aks-nodepool1-12345678-vmss000001 eastus eastus-2
aks-nodepool1-12345678-vmss000002 eastus eastus-3
...