Omówienie zalecanego rozwiązania o wysokiej dostępności aktywne-aktywne dla usługi Azure Kubernetes Service (AKS)
Podczas tworzenia aplikacji w usłudze Azure Kubernetes Service (AKS) i wybraniu regionu świadczenia usługi Azure podczas tworzenia zasobów jest to aplikacja z jednym regionem. W przypadku awarii, która powoduje niedostępność regionu, aplikacja stanie się również niedostępna. Jeśli tworzysz identyczne wdrożenie w regionie pomocniczym platformy Azure, aplikacja stanie się mniej podatna na awarię w jednym regionie, co gwarantuje ciągłość działania, a każda replikacja danych w regionach umożliwia odzyskanie ostatniego stanu aplikacji.
Chociaż istnieje wiele wzorców, które mogą zapewnić możliwość odzyskiwania dla rozwiązania AKS, w tym przewodniku opisano zalecane rozwiązanie wysokiej dostępności aktywne-aktywne dla usługi AKS. W tym rozwiązaniu wdrażamy dwa niezależne i identyczne klastry usługi AKS w dwóch sparowanych regionach świadczenia usługi Azure z dwoma klastrami aktywnie obsługującymi ruch.
Uwaga
Poniższy przypadek użycia może być uznawany za standardową praktykę w usłudze AKS. Została ona przejrzena wewnętrznie i zweryfikowana w połączeniu z naszymi partnerami firmy Microsoft.
Omówienie rozwiązania o wysokiej dostępności aktywne-aktywne
To rozwiązanie opiera się na dwóch identycznych klastrach usługi AKS skonfigurowanych do aktywnego obsługiwania ruchu. Umieszczasz globalnego menedżera ruchu, takiego jak usługa Azure Front Door, przed dwoma klastrami w celu dystrybucji ruchu między nimi. Należy spójnie skonfigurować klastry tak, aby hostować wystąpienie wszystkich aplikacji wymaganych do działania rozwiązania.
Strefy dostępności to inny sposób zapewnienia wysokiej dostępności i odporności na uszkodzenia klastra usługi AKS w tym samym regionie. Strefy dostępności umożliwiają dystrybucję węzłów klastra w wielu izolowanych lokalizacjach w regionie świadczenia usługi Azure. W ten sposób, jeśli jedna strefa ulegnie awarii z powodu awarii zasilania, awarii sprzętu lub problemu z siecią, klaster może nadal działać i obsługiwać aplikacje. Strefy dostępności zwiększają również wydajność i skalowalność klastra, zmniejszając opóźnienia i rywalizację między węzłami. Aby skonfigurować strefy dostępności dla klastra usługi AKS, należy określić numery stref podczas tworzenia lub aktualizowania pul węzłów. Aby uzyskać więcej informacji, zobacz Co to są strefy dostępności platformy Azure?
Uwaga
Wiele regionów obsługuje strefy dostępności. Rozważ użycie regionów ze strefami dostępności, aby zapewnić większą odporność i dostępność obciążeń. Aby uzyskać więcej informacji, zobacz Odzyskiwanie po przerwie w działaniu usługi obejmującej cały region.
Scenariusze i konfiguracje
To rozwiązanie jest najlepiej zaimplementowane podczas hostowania aplikacji bezstanowych i/lub innych technologii wdrożonych również w obu regionach, takich jak skalowanie w poziomie. W scenariuszach, w których hostowana aplikacja jest zależna od zasobów, takich jak bazy danych, które są aktywnie w jednym regionie, zalecamy zaimplementowanie rozwiązania aktywne-pasywne w celu uzyskania potencjalnych oszczędności kosztów, ponieważ aktywny-pasywny ma więcej przestojów niż aktywny-aktywny."
Składniki
Rozwiązanie o wysokiej dostępności aktywne-aktywne korzysta z wielu usług platformy Azure. W tej sekcji omówiono tylko składniki unikatowe dla tej architektury wielu klastrów. Aby uzyskać więcej informacji na temat pozostałych składników, zobacz architekturę punktu odniesienia usługi AKS.
Wiele klastrów i regionów: wdrażasz wiele klastrów usługi AKS, z których każdy jest w osobnym regionie świadczenia usługi Azure. Podczas normalnych operacji konfiguracja usługi Azure Front Door kieruje ruch sieciowy między wszystkimi regionami. Jeśli jeden region stanie się niedostępny, ruch jest kierowany do regionu z najszybszym czasem ładowania użytkownika.
Sieć piasty i szprych na region: dla każdego regionalnego wystąpienia usługi AKS jest wdrażana para sieci piasty i szprych. Zasady usługi Azure Firewall Manager zarządzają zasadami zapory we wszystkich regionach.
Regionalny magazyn kluczy: aprowizujesz usługę Azure Key Vault w każdym regionie, aby przechowywać poufne wartości i klucze specyficzne dla wystąpienia usługi AKS oraz obsługiwać usługi znalezione w tym regionie.
Azure Front Door: usługa Azure Front Door równoważy obciążenie i kieruje ruch do regionalnego wystąpienia usługi aplikacja systemu Azure Gateway, które znajduje się przed każdym klastrem usługi AKS. Usługa Azure Front Door umożliwia routing globalny warstwy siedem .
Log Analytics: regionalne wystąpienia usługi Log Analytics przechowują regionalne metryki sieci i dzienniki diagnostyczne. Wystąpienie udostępnione przechowuje metryki i dzienniki diagnostyczne dla wszystkich wystąpień usługi AKS.
Container Registry: obrazy kontenerów dla obciążenia są przechowywane w zarządzanym rejestrze kontenerów. Dzięki temu rozwiązaniu pojedyncze wystąpienie usługi Azure Container Registry jest używane dla wszystkich wystąpień platformy Kubernetes w klastrze. Replikacja geograficzna dla usługi Azure Container Registry umożliwia replikowanie obrazów do wybranych regionów świadczenia usługi Azure i zapewnia stały dostęp do obrazów, nawet jeśli region ulegnie awarii.
Proces trybu failover
Jeśli usługa lub składnik usługi staną się niedostępne w jednym regionie, ruch powinien być kierowany do regionu, w którym ta usługa jest dostępna. Architektura z wieloma regionami obejmuje wiele różnych punktów awarii. W tej sekcji omówiono potencjalne punkty awarii.
Zasobniki aplikacji (regionalne)
Obiekt wdrożenia platformy Kubernetes tworzy wiele replik zasobnika (ReplicaSet). Jeśli jedna z nich jest niedostępna, ruch jest kierowany między pozostałymi replikami. Zestaw replik Kubernetes próbuje zachować określoną liczbę replik do uruchomienia. Jeśli jedno wystąpienie ulegnie awarii, należy ponownie utworzyć nowe wystąpienie. Sondy wydajności mogą sprawdzać stan aplikacji lub procesu uruchomionego w zasobniku. Jeśli zasobnik nie odpowiada, sonda aktualności usuwa zasobnik, co wymusza utworzenie nowego wystąpienia przez zestaw replicaSet .
Aby uzyskać więcej informacji, zobacz Kubernetes ReplicaSet.
Zasobniki aplikacji (globalne)
Gdy cały region stanie się niedostępny, zasobniki w klastrze nie będą już dostępne do obsługi żądań. W takim przypadku wystąpienie usługi Azure Front Door kieruje cały ruch do pozostałych regionów kondycji. Klastry i zasobniki Kubernetes w tych regionach nadal obsługują żądania. Aby zrekompensować zwiększony ruch i żądania do pozostałego klastra, pamiętaj o następujących wskazówkach:
- Upewnij się, że zasoby sieciowe i obliczeniowe mają odpowiedni rozmiar, aby wchłonąć nagły wzrost ruchu z powodu przejścia w tryb failover w regionie. Na przykład w przypadku korzystania z interfejsu sieciowego kontenera platformy Azure (CNI) upewnij się, że masz podsieć, która może obsługiwać wszystkie adresy IP zasobników z gwałtownym obciążeniem ruchem.
- Użyj narzędzia Horizontal Pod Autoscaler, aby zwiększyć liczbę replik zasobników, aby zrekompensować zwiększone zapotrzebowanie regionalne.
- Użyj narzędzia AKS Cluster Autoscaler , aby zwiększyć liczbę węzłów wystąpienia kubernetes w celu zrekompensowania zwiększonego zapotrzebowania regionalnego.
Pule węzłów platformy Kubernetes (regionalne)
Czasami zlokalizowane awarie mogą wystąpić w przypadku zasobów obliczeniowych, takich jak niedostępność zasilania w jednym stojaku serwerów platformy Azure. Aby chronić węzły usługi AKS przed stanie się awarią regionalną pojedynczego punktu, użyj usługi Azure Strefy dostępności. Strefy dostępności zapewniają, że węzły usługi AKS w każdej strefie dostępności są fizycznie oddzielone od tych zdefiniowanych w innych strefach dostępności.
Pule węzłów platformy Kubernetes (globalne)
W przypadku całkowitej awarii regionalnej usługa Azure Front Door kieruje ruch do pozostałych regionów w dobrej kondycji. Ponownie pamiętaj, aby zrekompensować zwiększony ruch i żądania do pozostałego klastra.
Strategia testowania trybu failover
Chociaż w usłudze AKS nie ma obecnie dostępnych mechanizmów umożliwiających wyłączenie całego regionu wdrożenia na potrzeby testowania, usługa Azure Chaos Studio oferuje możliwość utworzenia eksperymentu chaosu w klastrze.
Następne kroki
Jeśli rozważasz inne rozwiązanie, zapoznaj się z następującymi artykułami:
Azure Kubernetes Service