Verfügbarkeitssätze in AKS, die von Azure Arc aktiviert sind
Verfügbarkeitssätze sind logische Gruppen von VMs, die schwache Antiaffinitätsbeziehungen miteinander aufweisen, um sicherzustellen, dass sie gleichmäßig über die verfügbaren Fehlerdomänen in einem physischen Cluster verteilt werden. Eine Fehlerdomäne in diesem Kontext ist ein physischer Host oder eine Gruppe physischer Hosts. Mithilfe von Verfügbarkeitssätzen kann AKS Arc die Verfügbarkeit und Verteilung Ihrer Kubernetes-Workloads verbessern. Verfügbarkeitssätze können Szenarien vermeiden, in denen ein einzelner Knotenfehler dazu führen kann, dass mehrere VMs ausfallen oder unausgewogen werden.
Übersicht
Verfügbarkeitssätze bieten verschiedene Vorteile für AKS für lokale Azure-Benutzer, z. B.:
- Verbessert die Verfügbarkeit und Resilienz Ihrer Anwendungen, indem Szenarien vermieden werden, in denen mehrere VMs innerhalb desselben Knotenpools oder einer Steuerungsebene aufgrund eines Einzelnen Knotenfehlers heruntergehen oder unausgewogen werden.
- Optimiert die Ressourcennutzung und Leistung Ihres Clusters, indem sichergestellt wird, dass VMs gleichmäßig über die verfügbaren Knoten verteilt und nicht auf einen einzelnen Knoten oder eine Teilmenge von Knoten konzentriert werden.
- Richtet sich an die bewährten Methoden und Erwartungen Ihrer Kunden und Partner, die nach einer zuverlässigen und konsistenten lokalen Kubernetes-Erfahrung suchen.
Verfügbarkeitssätze aktivieren
Mit AKS auf Azure Local, Version 23H2, ist das Verfügbarkeitssatz-Feature standardmäßig aktiviert, wenn Sie einen Knotenpool erstellen. Mit AKS unter Windows Server können Sie das Feature für Verfügbarkeitssätze aktivieren, indem Sie den -enableAvailabilitySet
Parameter hinzufügen, wenn Sie einen AKS-Cluster erstellen, New-AksHciCluster -Name <name> -controlPlaneNodeCount 3 -osType Linux -kubernetesVersion $kubernetesVersion -enableAvailabilitySet
z. B. .
Funktionsweise von Verfügbarkeitssätzen in AKS, die von Azure Arc aktiviert sind
Wenn Sie einen neuen AKS Arc-Cluster erstellen, erstellt AKS Arc automatisch Verfügbarkeitssätze, eine für die Steuerebenen-VMs und eine für jeden der Knotenpools im Kubernetes-Cluster. Jeder Knotenpool verfügt über einen eigenen Verfügbarkeitssatz. Mit diesem Layout stellt AKS Arc sicher, dass sich VMs derselben Rolle (Steuerebene oder Knotenpool) nie auf demselben physischen Host befinden und dass sie über die verfügbaren Knoten in einem Cluster verteilt werden.
Sobald die Verfügbarkeitssätze erstellt und die zugewiesenen VMs zugewiesen wurden, platziert das System sie automatisch auf den entsprechenden physischen Knoten. Wenn ein Knoten fehlschlägt, schlägt das System beim Wiederherstellen des Knotens auch automatisch über die virtuellen Computer auf andere Knoten aus und wiederherstellen sie neu. Auf diese Weise können Sie eine hohe Verfügbarkeit und optimale Verteilung Ihrer Kubernetes-Workloads erreichen, ohne manuelle Eingriffe auszuführen.
Erwägen Sie eine AKS auf Azure Local, Version 23H2-Cluster mit zwei physischen Hostcomputern, Host A und Host B, drei VMs der Steuerebene und zwei Arbeitsknoten-VMs, Nodepool1VM1 und Nodepool1VM2. Um eine hohe Verfügbarkeit Ihrer Kubernetes-Anwendungen sicherzustellen, dürfen die VMs des Knotenpools niemals denselben Host gemeinsam nutzen, es sei denn, einer der Hosts ist vorübergehend für geplante Wartungs- oder Kapazitätsproblem nicht verfügbar, was dazu führen kann, dass die VM (virtueller Computer) vorübergehend auf einem alternativen Host platziert wird.
Im folgenden Diagramm stellt jede Farbe eine Antiaffinitätsgruppe dar:
Wenn Host B aufgrund eines Neustarts herunterfällt, schlagen Control Plane VM2, Control Plane VM3 und Nodepool1VM2 auf Host A fehl, wie in der folgenden Abbildung dargestellt. Wenn Ihre Anwendung Pods in NodePoolVM1 ausführt, hat dieser Neustart keine Auswirkungen auf Ihre Anwendung:
In der alten Architektur, wenn Host B nach einem Neustart wieder online kam, gab es keine Garantie, dass die VMs von Host A zu Host B zurückwechseln (Neubalancieren), wodurch die Workloads gezwungen werden, auf demselben Host zu bleiben, und einen einzelnen Fehlerpunkt zu erstellen, wie im folgenden Diagramm gezeigt:
Verfügbarkeitssätze für AKS Arc können dazu beitragen, virtuelle Computer neu auszubalancieren, sobald sich ein Host aus einem temporären Ausfall wiederherstellen kann. In diesem Beispiel werden ControlPlaneVM2, ControlPlaneVM3 und Nodepool1VM2 automatisch zu Host B verschoben, wie hier gezeigt:
Wichtig
Verfügbarkeitssätze in AKS Arc sind ein neues Feature, das sich noch weiterentwickelt und verbessert. Die manuelle Konfiguration der Fehlerdomänen oder Verfügbarkeitsgruppen wird noch nicht unterstützt. Sie können die Fehlerdomänen eines Verfügbarkeitssatzes nach der Erstellung nicht mehr ändern. VMs werden einem Verfügbarkeitssatz bei der Clustererstellung zugewiesen und können nicht zu einem anderen Verfügbarkeitssatz migriert werden.
Hinzufügen oder Löschen von Computern
In einem Hostlöschszenario wird der Host nicht mehr als Teil des Clusters betrachtet. Dieser Löschvorgang tritt in der Regel auf, wenn Sie einen Computer aufgrund von Hardwareproblemen ersetzen oder den lokalen Azure-Cluster aus anderen Gründen herunterskalieren. Während eines Knotenausfalls bleibt der Knoten Teil des lokalen Azure-Clusters, wird aber als abwärts angezeigt.
Wenn ein physischer Computer (Fehlerdomäne) dauerhaft aus dem Cluster gelöscht wird, wird die Verfügbarkeitssatzkonfiguration nicht geändert, um die Anzahl der Fehlerdomänen zu verringern. In diesem Szenario wechselt der Verfügbarkeitssatz in einen fehlerhaften Zustand. Es wird empfohlen, Ihre Kubernetes-Cluster erneut bereitzustellen, damit der Verfügbarkeitssatz mit der richtigen Anzahl von Fehlerdomänen aktualisiert wird.
Wenn dem Cluster ein neuer physischer Computer (Fehlerdomäne) hinzugefügt wird, wird die Verfügbarkeitssatzkonfiguration automatisch erweitert, um den neuen Computer einzuschließen. Die vorhandenen virtuellen Computer werden jedoch nicht neu ausgeglichen, um diese neue Konfiguration anzuwenden, da sie bereits Verfügbarkeitssätzen zugewiesen sind. Es wird empfohlen, Ihre Kubernetes-Cluster erneut bereitzustellen, damit der Verfügbarkeitssatz mit der richtigen Anzahl von Fehlerdomänen aktualisiert wird.