Zestawy dostępności w usłudze AKS włączone przez usługę Azure Arc
Zestawy dostępności to logiczne grupy maszyn wirtualnych, które mają słabe relacje anty-koligacji ze sobą, aby zapewnić równomierne rozmieszczenie ich w dostępnych domenach błędów w klastrze fizycznym. Domena błędów w tym kontekście jest hostem fizycznym lub grupą hostów fizycznych. Dzięki zestawom dostępności usługa AKS Arc może zwiększyć dostępność i dystrybucję obciążeń platformy Kubernetes. Zestawy dostępności mogą uniknąć scenariuszy, w których awaria pojedynczego węzła może spowodować, że wiele maszyn wirtualnych przestanie działać lub stanie się niezrównoważone.
Omówienie
Zestawy dostępności oferują kilka korzyści dla usługi AKS dla użytkowników lokalnych platformy Azure, takich jak:
- Zwiększa dostępność i odporność aplikacji, unikając scenariuszy, w których wiele maszyn wirtualnych w ramach tej samej puli węzłów lub płaszczyzny sterowania ulegnie awarii lub stanie się niezrównoważone z powodu awarii jednego węzła.
- Optymalizuje użycie zasobów i wydajność klastra, zapewniając równomierną dystrybucję maszyn wirtualnych w dostępnych węzłach i nie koncentruje się na jednym węźle lub podzestawie węzłów.
- Jest zgodna z najlepszymi rozwiązaniami i oczekiwaniami klientów i partnerów, którzy szukają niezawodnego i spójnego środowiska lokalnego platformy Kubernetes.
Włączanie zestawów dostępności
Dzięki usłudze AKS na platformie Azure w wersji 23H2 funkcja zestawów dostępności jest domyślnie włączona podczas tworzenia puli węzłów. Za pomocą usługi AKS w systemie Windows Server można włączyć funkcję zestawów dostępności, dodając -enableAvailabilitySet
parametr podczas tworzenia klastra usługi AKS, na przykład New-AksHciCluster -Name <name> -controlPlaneNodeCount 3 -osType Linux -kubernetesVersion $kubernetesVersion -enableAvailabilitySet
.
Jak działają zestawy dostępności w usłudze AKS włączone przez usługę Azure Arc
Podczas tworzenia nowego klastra usługi AKS Arc usługa AKS Arc automatycznie tworzy zestawy dostępności, jedną dla maszyn wirtualnych płaszczyzny sterowania i drugą dla każdej pul węzłów w klastrze Kubernetes. Każda pula węzłów ma własny zestaw dostępności. Dzięki temu układowi usługa AKS Arc gwarantuje, że maszyny wirtualne tej samej roli (płaszczyzny sterowania lub puli węzłów) nigdy nie znajdują się na tym samym hoście fizycznym i że są dystrybuowane między dostępne węzły w klastrze.
Po utworzeniu zestawów dostępności i przypisaniu maszyn wirtualnych system automatycznie umieszcza je w odpowiednich węzłach fizycznych. Jeśli węzeł ulegnie awarii, system automatycznie przełączy maszyny wirtualne w tryb failover do innych węzłów i ponownie je zrównoważy po odzyskaniu węzła. Dzięki temu można osiągnąć wysoką dostępność i optymalną dystrybucję obciążeń Kubernetes bez ręcznej interwencji.
Rozważmy usługę AKS w klastrze azure Local w wersji 23H2 z dwoma fizycznymi maszynami hosta A i hostem B, trzema maszynami wirtualnymi płaszczyzny sterowania i dwie maszyny wirtualne węzła roboczego, Nodepool1VM1 i Nodepool1VM2. Aby zapewnić wysoką dostępność aplikacji Kubernetes, maszyny wirtualne puli węzłów nigdy nie muszą współużytkować tego samego hosta, chyba że jeden z hostów jest tymczasowo niedostępny w przypadku planowanej konserwacji lub problemu z pojemnością, co może spowodować tymczasowe umieszczenie maszyny wirtualnej (maszyny wirtualnej) na alternatywnym hoście.
Na poniższym diagramie każdy kolor reprezentuje grupę anty-koligacji:
Jeśli host B ulegnie awarii z powodu ponownego uruchomienia, płaszczyzny sterowania VM2, płaszczyzny sterowania VM3 i nodepool1VM2 przełączenie w tryb failover do hosta A , jak pokazano na poniższej ilustracji. Zakładając, że aplikacja uruchamia zasobniki w maszynie NodePoolVM1, ten ponowny rozruch nie ma wpływu na aplikację:
W starej architekturze, jeśli host B wrócił do trybu online po ponownym uruchomieniu, nie było gwarancji, że maszyny wirtualne zostaną przeniesione z hosta A do hosta B (ponowne równoważenie), co zmusza obciążenia do pozostania na tym samym hoście i utworzenia pojedynczego punktu awarii, jak pokazano na poniższym diagramie:
Zestawy dostępności dla usługi AKS Arc mogą pomóc w ponownym równoważeniu maszyn wirtualnych po odzyskaniu hosta po tymczasowym przestoju. W tym przykładzie ControlPlaneVM2, ControlPlaneVM3 i Nodepool1VM2 zostaną automatycznie przeniesione do hosta B, jak pokazano poniżej:
Ważne
Zestawy dostępności w usłudze AKS Arc to nowa funkcja, która wciąż ewoluuje i ulepsza. Nie obsługujemy jeszcze ręcznej konfiguracji domen błędów ani zestawów dostępności. Nie można zmienić domen błędów zestawu dostępności po jego utworzeniu. Maszyny wirtualne są przypisywane do zestawu dostępności podczas tworzenia klastra i nie można ich migrować do innego zestawu dostępności.
Dodawanie lub usuwanie maszyn
W scenariuszu usuwania hosta host nie jest już uważany za część klastra. To usunięcie zwykle występuje podczas zastępowania maszyny z powodu problemów sprzętowych lub skalowania klastra lokalnego platformy Azure z innych powodów. Podczas awarii węzła węzeł pozostaje częścią klastra lokalnego platformy Azure, ale jest wyświetlany jako Wyłączony.
Jeśli maszyna fizyczna (domena błędów) zostanie trwale usunięta z klastra, konfiguracja zestawu dostępności nie zostanie zmodyfikowana w celu zmniejszenia liczby domen błędów. W tym scenariuszu zestaw dostępności wprowadza stan złej kondycji. Zalecamy ponowne wdrożenie klastrów Kubernetes w taki sposób, aby zestaw dostępności został zaktualizowany przy użyciu odpowiedniej liczby domen błędów.
Po dodaniu nowej maszyny fizycznej (domeny błędów) do klastra konfiguracja zestawu dostępności zostanie automatycznie rozszerzona w celu uwzględnienia nowej maszyny. Jednak istniejące maszyny wirtualne nie są ponownie równoważące, aby zastosować tę nową konfigurację, ponieważ są one już przypisane do zestawów dostępności. Zalecamy ponowne wdrożenie klastrów Kubernetes w taki sposób, aby zestaw dostępności został zaktualizowany przy użyciu odpowiedniej liczby domen błędów.