Ereignisse
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Verfügbarkeitszonen helfen dabei, Ihre Anwendungen und Daten vor Ausfällen in Rechenzentren zu schützen. Zonen sind eindeutige physische Standorte in einer Azure-Region. Jede Zone umfasst eines oder mehrere Rechenzentren, die mit unabhängiger Stromversorgung, Kühlung und unabhängigem Netzwerk ausgestattet sind.
Durch die Verwendung von AKS mit Verfügbarkeitszonen werden die Ressourcen physisch auf verschiedene Verfügbarkeitszonen innerhalb einer einzigen Region verteilt, was die Zuverlässigkeit erhöht. Bei der Bereitstellung von Knoten in mehreren Zonen entstehen keine zusätzlichen Kosten.
In diesem Artikel erfahren Sie, wie Sie AKS-Ressourcen für die Verwendung mit Verfügbarkeitszonen konfigurieren.
Dieses Diagramm zeigt die Azure-Ressourcen, die beim Erstellen eines AKS-Clusters erstellt werden:
Microsoft hostet die AKS-Steuerungsebene, den Kubernetes API-Server und Dienste wie scheduler
und etcd
als verwalteten Dienst. Microsoft repliziert die Steuerungsebene in mehreren Zonen.
Andere Ressourcen Ihres Clusters werden in einer verwalteten Ressourcengruppe in Ihrem Azure-Abonnement bereitgestellt. Standardmäßig wird dieser Ressourcengruppe das Präfix MC_ für Managed Cluster vorangestellt und sie enthält die folgenden Ressourcen:
Knotenpools werden als Skalierungsgruppe für virtuelle Computer in Ihrem Azure-Abonnement erstellt.
Wenn Sie einen AKS-Cluster erstellen, ist ein Systemknotenpool erforderlich und wird automatisch erstellt. Er hostet kritische System-Pods wie CoreDNS
und metrics-server
. Weitere Benutzerknotenpools können Ihrem AKS-Cluster hinzugefügt werden, um Ihre Anwendungen zu hosten.
Es gibt drei Möglichkeiten zum Bereitstellen von Knotenpools:
Für den Systemknotenpool wird die Anzahl der verwendeten Zonen konfiguriert, wenn der Cluster erstellt wird.
Eine zonenübergreifende Skalierungsgruppe verteilt Knoten auf alle ausgewählten Zonen, indem sie diese Zonen mit dem Parameter --zones
angibt.
# Create an AKS Cluster, and create a zone spanning System Nodepool in all three AZs, one node in each AZ
az aks create --resource-group example-rg --name example-cluster --node-count 3 --zones 1, 2, 3
# Add one new zone spanning User Nodepool, two nodes in each
az aks nodepool add --resource-group example-rg --cluster-name example-cluster --name userpool-a --node-count 6 --zones 1, 2, 3
AKS gleicht die Anzahl der Knoten automatisch zwischen Zonen aus.
Bei einem Zonenausfall können Knoten innerhalb der betroffenen Zone beeinträchtigt sein, Knoten in anderen Verfügbarkeitszonen sind jedoch nicht betroffen.
Jeder Knoten wird an eine bestimmte Zone ausgerichtet (angeheftet). So erstellen Sie drei Knotenpools für eine Region mit drei Verfügbarkeitszonen:
# # Add three new zone aligned User Nodepools, two nodes in each
az aks nodepool add --resource-group example-rg --cluster-name example-cluster --name userpool-x --node-count 2 --zones 1
az aks nodepool add --resource-group example-rg --cluster-name example-cluster --name userpool-y --node-count 2 --zones 2
az aks nodepool add --resource-group example-rg --cluster-name example-cluster --name userpool-z --node-count 2 --zones 3
Diese Konfiguration kann verwendet werden, wenn eine niedrigere Latenz zwischen Knoten erforderlich ist. Sie bietet zudem eine genauere Kontrolle über Skalierungsvorgänge oder bei Verwendung des Cluster-Autoscaler.
Hinweis
--balance-similar-node-groups
auf true
festzulegen, um eine ausgewogene Verteilung von Knoten über Zonen für Ihre Workloads während der Skalierungsvorgänge aufrechtzuerhalten.Der regionale Modus wird verwendet, wenn die Zonenzuweisung nicht in der Bereitstellungsvorlage festgelegt ist ("zones"=[] or "zones"=null
).
In dieser Konfiguration erstellt der Knotenpool regionsbezogene (nicht an eine Zone angefügte) Instanzen und platziert Instanzen implizit in der gesamten Region. Es gibt keine Garantie für einen Lastenausgleich oder eine Verteilung auf die Zonen, und es ist nicht garantiert, dass Instanzen in derselben Verfügbarkeitszone landen.
Im seltenen Fall des Ausfalls einer ganzen Zone können einzelne oder alle Instanzen im Knotenpool betroffen sein.
Führen Sie zum Überprüfen von Knotenspeicherorten den folgenden Befehl aus:
kubectl describe nodes | grep -e "Name:" -e "topology.kubernetes.io/zone"
NAME REGION ZONE
aks-nodepool1-34917322-vmss000000 eastus eastus-1
aks-nodepool1-34917322-vmss000001 eastus eastus-2
aks-nodepool1-34917322-vmss000002 eastus eastus-3
Kubernetes kennt Azure-Verfügbarkeitszonen und kann Pods über Knoten in verschiedenen Zonen hinweg ausgleichen. Wenn eine Zone nicht mehr verfügbar ist, verschiebt Kubernetes Pods automatisch von betroffenen Knoten.
Wie unter Well-Known Labels, Annotations and Taints (Bekannte Bezeichnungen, Anmerkungen und Taints) dokumentiert, wird in Kubernetes die Bezeichnung topology.kubernetes.io/zone
zum automatischen Verteilen von Pods in einem Replikationscontroller oder Replikationsdienst in den verschiedenen verfügbaren Zonen verwendet.
Führen Sie den folgenden Befehl aus, um anzuzeigen, auf welchen Pods Knoten ausgeführt werden:
kubectl describe pod | grep -e "^Name:" -e "^Node:"
Der Parameter „maxSkew“ beschreibt das Ausmaß, in dem Pods ungleichmäßig verteilt werden können. Wenn Sie von drei Zonen und drei Replikaten ausgehen, stellt die Einstellung dieses Wertes auf 1 sicher, dass in jeder Zone mindestens ein Pod ausgeführt wird:
kind: Pod
apiVersion: v1
metadata:
name: myapp
spec:
replicas: 3
topologySpreadConstraints:
- maxSkew: 1
topologyKey: "topology.kubernetes.io/zone"
whenUnsatisfiable: DoNotSchedule # or ScheduleAnyway
containers:
- name: pause
image: registry.k8s.io/pause:3.1
Standardmäßig verwenden Kubernetes-Versionen 1.29 und höher Azure Managed Disks mit zonenredundantem Speicher (ZRS) für persistente Volumeansprüche.
Diese Datenträger werden zwischen Zonen repliziert, um die Resilienz Ihrer Anwendungen zu verbessern und Ihre Daten vor Rechenzentrumsaufällen zu schützen.
Ein Beispiel für einen persistenten Volumeanspruch, der SSD Standard in ZRS verwendet:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: azure-managed-disk
spec:
accessModes:
- ReadWriteOnce
storageClassName: managed-csi
#storageClassName: managed-csi-premium
resources:
requests:
storage: 5Gi
Für zonenorientierte Bereitstellungen können Sie eine neue Speicherklasse erstellen, wobei der Parameter skuname
auf LRS (lokal redundanter Speicher) eingestellt ist.
Anschließend können Sie die neue Speicherklasse in Ihrem Persistent Volume Claim (PVC) verwenden.
LRS-Datenträger sind zwar preiswerter, aber nicht zonenredundant, und das Anschließen eines Datenträgers an einen Knoten in einer anderen Zone wird nicht unterstützt.
Beispiel für eine LRS SSD Standard-Speicherklasse:
kind: StorageClass
metadata:
name: azuredisk-csi-standard-lrs
provisioner: disk.csi.azure.com
parameters:
skuname: StandardSSD_LRS
#skuname: PremiumV2_LRS
Kubernetes stellt standardmäßig einen Azure Load Balancer Standard bereit, der eingehenden Datenverkehr über alle Zonen in einer Region ausgleicht. Wenn ein Knoten nicht verfügbar ist, leitet der Lastenausgleich den Verkehr auf intakte Knoten um.
Ein Beispieldienst, der den Azure Load Balancer verwendet:
apiVersion: v1
kind: Service
metadata:
name: example
spec:
type: LoadBalancer
selector:
app: myapp
ports:
- port: 80
targetPort: 8080
Wichtig
Am 30. September 2025 wird Load Balancer im Tarif „Basic“ eingestellt. Weitere Informationen finden Sie in der offiziellen Ankündigung. Wenn Sie derzeit Load Balancer Basic verwenden, führen Sie unbedingt vor dem Ablaufdatum ein Upgrade auf Load Balancer Standard durch.
Die folgenden Einschränkungen gelten bei der Verwendung von Verfügbarkeitszonen:
Feedback zu Azure Kubernetes Service
Azure Kubernetes Service ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
Ereignisse
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenTraining
Modul
Optimieren von Computekosten in Azure Kubernetes Service (AKS) - Training
Hier erfahren Sie mehr über die Strategien, die Sie in Azure anwenden können, um Ihren cloudnativen Anwendungsentwicklungsprozess mit Azure Kubernetes Service (AKS) zu optimieren.
Zertifizierung
Microsoft Certified: Azure Administrator Associate - Certifications
Veranschaulichen Sie wichtige Qualifikationen zum Konfigurieren, Verwalten, Schützen und Verwalten wichtiger professioneller Funktionen in Microsoft Azure.