Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Kubernetes Service (AKS) to zarządzana usługa orkiestracji kontenerów, która upraszcza wdrażanie, zarządzanie i operacje platformy Kubernetes.
W przypadku korzystania z platformy Azure niezawodność jest wspólną odpowiedzialnością. Firma Microsoft oferuje szereg możliwości wspierania odporności systemów i odzyskiwania. Odpowiadasz za zrozumienie, jak te funkcje działają w ramach wszystkich używanych usług, oraz za wybór tych funkcji, które są potrzebne do osiągnięcia celów biznesowych i celów czasu działania.
W tym artykule opisano, jak zapewnić odporność usługi Azure Kubernetes Service (AKS) na różne potencjalne awarie i problemy, w tym przejściowe błędy, awarie strefy dostępności i awarie regionów. W tym artykule opisano również, jak można używać kopii zapasowych do odzyskiwania po innych typach problemów, oraz wyróżnia niektóre kluczowe informacje o umowie dotyczącej poziomu usług (SLA) usługi Azure Kubernetes Service (AKS).
Zalecenia dotyczące wdrażania produkcyjnego
Aby uzyskać zalecenia, jak wdrożyć niezawodne obciążenia produkcyjne w AKS, zobacz następujące artykuły:
- Najlepsze praktyki dotyczące niezawodności wdrożenia i klastra w AKS
- Omówienie wysokiej dostępności (HA) i odzyskiwania po awarii (DR) dla usługi AKS
- Rozważania dotyczące odporności strefowej dla AKS
Omówienie architektury niezawodności
Podczas tworzenia klastra usługi AKS platforma Azure automatycznie tworzy i konfiguruje:
Płaszczyzna sterowania z serwerem API, etcd, harmonogramem i innymi podami, które są wymagane do zarządzania obciążeniem.
Pula węzłów systemowych w ramach twojej subskrypcji, która obsługuje dodatki i inne zasobniki działające w przestrzeni nazw kube-system.
Po zakończeniu konfiguracji początkowej puli węzłów można dodawać lub usuwać pule węzłów dla własnych obciążeń użytkownika. Usługa AKS nie zarządza pulami węzłów w celu zapewnienia niezawodności, dlatego musisz upewnić się, że obciążenia robocze są odporne na awarie infrastruktury.
Odpornność jest wspólną odpowiedzialnością między tobą a Microsoftem. Jako usługa obliczeniowa usługa AKS zarządza pewnymi aspektami niezawodności klastra, ale odpowiadasz za zarządzanie innymi aspektami.
Firma Microsoft zarządza płaszczyzną sterowania i innymi zarządzanymi składnikami usługi AKS.
Twoim zadaniem jest:
Definiowanie sposobu konfigurowania składników, w tym pul węzłów i modułów równoważenia obciążenia dołączonych do usług, w celu spełnienia wymagań dotyczących niezawodności. Po zdefiniowaniu składników firma Microsoft wdraża je i zarządza nimi w Twoim imieniu.
Zarządzaj wszystkimi składnikami spoza klastra usługi AKS, w tym magazynem i bazami danych. Sprawdź, czy te składniki spełniają wymagania dotyczące niezawodności. Podczas wdrażania obciążeń upewnij się, że inne składniki platformy Azure są również skonfigurowane pod kątem odporności, postępując zgodnie z najlepszymi rozwiązaniami dotyczącymi tych usług.
Odporność na błędy przejściowe
Błędy przejściowe to krótkotrwałe, sporadyczne awarie w komponentach. Występują one często w środowisku rozproszonym, takich jak chmura, i są one normalną częścią operacji. Błędy przejściowe naprawiają się po krótkim czasie. Ważne jest, aby aplikacje mogły obsługiwać błędy przejściowe, zwykle ponawiając próby żądań, których dotyczy problem.
Wszystkie aplikacje hostowane w chmurze powinny postępować zgodnie ze wskazówkami dotyczącymi obsługi błędów przejściowych platformy Azure podczas komunikowania się z dowolnymi interfejsami API hostowanymi w chmurze, bazami danych i innymi składnikami. Aby uzyskać więcej informacji, zobacz Zalecenia dotyczące obsługi błędów przejściowych.
W przypadku korzystania z usługi AKS błędy przejściowe mogą wystąpić z różnych powodów, w tym awarii aplikacji, skalowania i równoważenia zasobników, poprawek węzłów i tymczasowych awarii infrastruktury, takich jak problemy ze sprzętem lub siecią.
Nie można wyeliminować wszystkich błędów przejściowych, więc klienci, którzy uzyskują dostęp do aplikacji hostowanych w usłudze AKS, powinni być przygotowani do ponownego wykonywania nieudanych żądań i postępować zgodnie z innymi zaleceniami dotyczącymi obsługi błędów przejściowych. Możesz zminimalizować prawdopodobieństwo przejściowych błędów i uniknąć przestojów, które mogą spowodować, postępując zgodnie z najlepszymi rozwiązaniami dotyczącymi platformy Kubernetes i platformy Azure we wdrożeniu.
- Ustaw budżety zakłóceń zasobników (PDB) w zasobniku YAML, aby określić liczbę zasobników, które mają być w
Readystanie w danym momencie. Po ustawieniu PDB usługa AKS zapewnia minimalną dostępność replik podczas przeprowadzania operacji na zablokowaniu i drenowaniu węzłów. Jeśli PDB nie może być spełniony podczas procesów, takich jak aktualizacje, pod będzie nadal działać, a operacja może zakończyć się niepowodzeniem. Aby uzyskać więcej informacji, zobacz Pliki PDB. - Użyj
maxUnavailablepolecenia , aby zdefiniować maksymalną liczbę replik, które mogą stać się niedostępne w danym momencie. Na przykład, gdy przeprowadzasz stopniowe ponowne uruchamianie, usługa AKS gwarantuje, że w danym momencie nie zostanie uruchomiona większa liczba zasobników niżmaxUnavailable. Aby uzyskać więcej informacji, zobacz maxUnavailable. - Postępuj zgodnie z najlepszymi rozwiązaniami dotyczącymi wdrażania. Repliki zasobników mogą również zakończyć się błędem z powodu problemów z aplikacją. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące niezawodności klastra usługi AKS na poziomie wdrożenia.
Uwaga
Jeśli chcesz, aby usługa AKS weryfikowała wdrożenia pod kątem zgodności z najlepszymi rozwiązaniami i dostarczała powiadomienia blokujące lub ostrzegawcze, możesz użyć zabezpieczeń wdrożenia. Zabezpieczenia wdrożenia to oferta zarządzana, która ułatwia wymuszanie najlepszych rozwiązań dotyczących produktów przed wdrożeniem kodu w klastrze.
Odporność na błędy strefy dostępności
Strefy dostępności są fizycznie oddzielnymi grupami centrów danych w regionie świadczenia usługi Azure. Gdy jedna strefa ulegnie awarii, usługi mogą przejść w tryb failover do jednej z pozostałych stref.
Podczas wdrażania klastra usługi AKS w regionie obsługującym strefy dostępności różne składniki wymagają różnych typów konfiguracji.
Domyślnie, płaszczyzna sterowania AKS charakteryzuje się odpornością na awarie stref. Jeśli strefa ulegnie awarii, płaszczyzna sterowania nie wymaga żadnej konfiguracji ani zarządzania w celu uzyskania odporności. Jednak odporność płaszczyzny sterowania nie jest wystarczająca, aby klaster pozostał operacyjny, gdy strefa ulegnie awarii. W przypadku puli węzłów systemowych i puli węzłów użytkownika, które wdrażasz, trzeba włączyć obsługę stref dostępności, aby pomóc zapewnić, że obciążenia będą odporne na awarie stref dostępności.
Requirements
Obsługa regionów: Klastry AKS o odporności strefowej można wdrożyć w dowolnym regionie obsługującym strefy dostępności.
Kwestie wymagające rozważenia
Aby zwiększyć niezawodność i odporność obciążeń produkcyjnych usługi AKS w regionie, należy skonfigurować usługę AKS pod kątem nadmiarowości stref, wykonując następujące konfiguracje:
Wdróż wiele replik. Kubernetes rozmieszcza zasobniki między węzłami na podstawie etykiet węzłów. Aby rozłożyć obciążenie między różne strefy, należy wdrożyć wiele replik podów. Jeśli na przykład skonfigurujesz pulę węzłów z trzema strefami, ale wdrożysz tylko jedną replikę zasobnika, twoje wdrożenie nie jest odporne na awarie strefowe.
Włącz automatyczne skalowanie. Pule węzłów platformy Kubernetes zapewniają opcje ręcznego i automatycznego skalowania. Korzystając z ręcznego skalowania, można dodawać lub usuwać węzły zgodnie z potrzebami, a oczekujące zasobniki czekają, aż pula węzłów zostanie skalowana w górę. Skalowanie zarządzane przez AKS używa automatycznego skalowania klastra lub automatycznego przydzielania węzłów (NAP). Usługa AKS skaluje pulę węzłów w górę lub w dół na podstawie wymagań poda, w ramach przydziału i pojemności SKU subskrypcji. Ta metoda pomaga upewnić się, że zasobniki są zaplanowane na dostępnych węzłach w strefach dostępności.
Ustaw ograniczenia topologii podu. Ograniczeń rozprzestrzeniania się topologii zasobników można użyć do kontrolowania rozkładu zasobników w różnych węzłach lub strefach. Ograniczenia ułatwiają osiągnięcie wysokiej dostępności, odporności i efektywnego użycia zasobów. Jeśli wolisz dokładnie rozmieszczać zasobniki między strefami, możesz ustawić warunki, aby wymusić przejście zasobnika do stanu oczekiwania, co pozwoli zachować równowagę zasobników między strefami. Aby uzyskać więcej informacji, zobacz Ograniczenia rozprzestrzeniania topologii podów.
Konfigurowanie sieci odpornej na strefy. Jeśli zasobniki obsługują ruch zewnętrzny, skonfiguruj architekturę sieci klastra przy użyciu usług takich jak Azure Application Gateway, Azure Load Balancer lub Azure Front Door.
Upewnij się, że zależności są odporne na strefy. Większość aplikacji usługi AKS używa innych usług do magazynowania, zabezpieczeń lub sieci. Upewnij się, że zapoznasz się z zaleceniami dotyczącymi odporności strefy dla tych usług.
Koszt
W usłudze AKS nie są naliczane dodatkowe opłaty, aby włączyć obsługę stref dostępności. Płacisz za maszyny wirtualne i inne zasoby wdrażane w strefach dostępności.
Konfiguruj obsługę stref dostępności
- Utwórz nowy klaster usługi AKS z obsługą strefy dostępności: Aby skonfigurować obsługę stref dostępności, zobacz Tworzenie klastra usługi Azure Kubernetes Service (AKS), który używa stref dostępności.
- Migracja: Nie można włączyć funkcji strefy dostępności już po utworzeniu klastra. Zamiast tego należy utworzyć nowy klaster z włączoną obsługą strefy dostępności i usunąć istniejący klaster.
- Wyłącz obsługę strefy dostępności: Nie można wyłączyć obsługi strefy dostępności po utworzeniu klastra. Zamiast tego należy utworzyć nowy klaster z wyłączoną obsługą strefy dostępności i usunąć istniejący klaster.
Zachowanie, gdy wszystkie strefy są w dobrej kondycji
W tej sekcji opisano, czego można oczekiwać, gdy klastry usługi AKS są skonfigurowane pod kątem obsługi strefy dostępności, a wszystkie strefy dostępności działają.
Routing ruchu między strefami: Podczas wdrażania klastra usługi AKS korzystającego ze stref dostępności ważne jest, aby upewnić się, że składniki sieciowe są również odporne na strefy. W zależności od modułów równoważenia obciążenia i innych używanych składników sieciowych może być konieczne jawne skonfigurowanie składników w celu kierowania ruchu do odpowiednich węzłów w odpowiednich strefach i reagowania na awarie strefy. Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące odporności strefy dla AKS.
Replikacja danych między strefami: Jeśli uruchamiasz bezstanowe obciążenie, do przechowywania danych aplikacji należy używać zarządzanych usług platformy Azure, takich jak bazy danych platformy Azure, usługa Azure Cache for Redis lub usługa Azure Storage . Możesz użyć tych usług, aby upewnić się, że ruch może być przenoszony między węzłami i strefami bez ryzyka utraty danych lub wpływu na środowisko użytkownika. Za pomocą wdrożeń, usług i sond kondycjiplatformy Kubernetes można zarządzać zasobnikami bezstanowymi, a nawet zapewnić równomierną dystrybucję między strefami.
Jeśli musisz przechowywać stan w klastrze przy użyciu dysków platformy Azure, użyj magazynu strefowo nadmiarowego platformy Azure, aby upewnić się, że dane są replikowane w wielu strefach dostępności. Aby uzyskać więcej informacji, zobacz Wybieranie odpowiedniego typu dysku na podstawie potrzeb aplikacji.
Zachowanie podczas awarii strefy
W tej sekcji opisano, czego można oczekiwać, gdy nastąpi awaria strefy dostępności, a klastry AKS są skonfigurowane z obsługą stref dostępności.
Wykrywanie i reagowanie: Gdy wystąpi awaria strefy, płaszczyzna kontrolna automatycznie się przełączy. Jeśli pule węzłów używają stref dostępności i postępuj zgodnie z najlepszymi rozwiązaniami dotyczącymi odporności strefy, możesz oczekiwać, że usługa AKS będzie wyświetlać węzły i repliki w strefach, które działają. Usługa AKS automatycznie wykonuje to zadanie, gdy używasz zarządzanych rozwiązań, takich jak automatyczne skalowanie klastra lub Ochrona Dostępu do Sieci (NAP). Bez skalowania automatycznego węzły i repliki pozostają w stanie Oczekiwanie i czekają na ręczną interwencję w celu zwiększenia rozmiaru puli węzłów.
Usługa AKS próbuje również ponownie zrównoważyć pody w stabilnych strefach. Jeśli zdecydujesz się ręcznie skalować pulę węzłów w sytuacji awarii strefy, zasobniki mogą pozostać w stanie oczekiwanie, gdy w zdrowych strefach nie ma dostępnych węzłów. Skalowanie poziome w pozostałych strefach podlega również dostępności pojemności i limitów dla SKU maszyny wirtualnej, którą używasz.
Powiadomienie: firma Microsoft nie powiadamia cię automatycznie, gdy strefa nie działa. Możesz jednak użyć usługi Azure Resource Health do monitorowania kondycji pojedynczego zasobu i skonfigurować alerty usługi Resource Health w celu powiadamiania o problemach. Możesz również użyć usługi Azure Service Health , aby zrozumieć ogólną kondycję usługi, w tym wszelkie błędy strefy, i skonfigurować alerty usługi Service Health w celu powiadamiania o problemach.
Możesz również użyć metryk kondycji węzła lub zasobnika do monitorowania kondycji węzłów i zasobników.
Aktywne żądania: Wszelkie aktywne żądania mogą doświadczyć zakłóceń. Niektóre żądania mogą zakończyć się niepowodzeniem, a opóźnienie może wzrosnąć, gdy obciążenie przełączy się do innej strefy.
Oczekiwana utrata danych: Jeśli przechowujesz stan w klastrze przy użyciu dysków platformy Azure i używasz magazynu strefowo nadmiarowego, nie oczekuje się, że awaria strefy spowoduje utratę danych.
Oczekiwany przestój: Jeśli prawidłowo skonfigurujesz odporność strefy dla klastra i podów, nie oczekuje się, że awaria strefy spowoduje przestój obciążenia roboczego AKS.
Przekierowywanie ruchu: Moduły równoważenia obciążenia przekierowują nowe przychodzące żądania do zasobników, które działają na węzłach w dobrej kondycji.
Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące odporności strefy dla AKS.
Odzyskiwanie strefy
Po odzyskaniu strefy dostępności zachowanie powrotu do normalnej pracy zależy od komponentu.
Płaszczyzna sterowania: AKS automatycznie przywraca działania płaszczyzny sterowania we wszystkich strefach dostępności. Nie jest wymagana interwencja ręczna.
Pule węzłów i węzły: Natychmiast po powrocie po awarii węzły pozostają w poprzednich strefach w dobrej kondycji i nie są przywracane w odzyskanej strefie. Jednak przy następnym wykonaniu operacji skalowania węzłów, na przykład podczas skalowania horyzontalnego puli węzłów, pula węzłów może tworzyć węzły w strefie, która została przywrócona.
Pody: Natychmiast po powrocie po awarii pody nadal działają na węzłach, na których są aktualnie uruchomione. Po utworzeniu nowych podów lub ponownym utworzeniu istniejących podów, mogą korzystać z węzłów w przywróconej strefie.
Przechowywanie: Każde przechowywanie podłączone do podów odzyskuje się na podstawie tego, jak działa przechowywanie z redundancją strefową.
Testowanie pod kątem niepowodzeń strefy
Odporność na błędy strefy dostępności można przetestować przy użyciu następujących metod:
- Zabezpieczenie i opróżnienie węzłów w jednej strefie dostępności
- Symulowanie awarii strefy dostępności przy użyciu usługi Azure Chaos Studio
Odporność na awarie całego regionu
Klastry AKS to jednoregionowe zasoby. Jeśli region jest niedostępny, klaster usługi AKS jest również niedostępny.
Niestandardowe rozwiązania obejmujące wiele regionów w celu zapewnienia odporności
Jeśli musisz wdrożyć obciążenie Kubernetes w wielu regionach świadczenia usługi Azure, masz dwie opcje zarządzania aranżacją tych klastrów.
Użyj usługi Azure Kubernetes Fleet Manager , jeśli potrzebujesz prostszego środowiska zarządzanego. Korzystając z usługi Azure Kubernetes Fleet Manager, możesz wykonywać następujące czynności:
Zarządzaj zestawem klastrów usługi AKS jako pojedynczą jednostką, a te klastry można dystrybuować w wielu regionach świadczenia usługi Azure.
Automatyzowanie określonych aspektów zarządzania klastrem, takich jak uaktualnienia obrazu klastra i węzła.
Użyj możliwości dystrybucji ruchu, aby rozłożyć ruch między klastrami i automatycznie przełączyć się na tryb awaryjny, gdy region stanie się niedostępny.
Zarządzaj przełączeniem awaryjnym za pomocą ręcznego modelu wdrażania typu aktywne-aktywne lub aktywne-pasywne, jeśli Twoje obciążenie wymaga bardziej szczegółowej kontroli nad różnymi komponentami przełączeń awaryjnych między regionami. Aby uzyskać więcej informacji, zapoznaj się z omówieniem wysokiej dostępności i odzyskiwania po awarii dla usługi AKS.
Tworzenie kopii zapasowej i przywracanie
Usługa Azure Backup ma rozszerzenie, którego można użyć do tworzenia kopii zapasowych zasobów klastra usługi AKS i trwałych woluminów dołączonych do klastra. Skarbiec kopii zapasowych komunikuje się z klastrem AKS za pośrednictwem rozszerzenia, aby wykonywać operacje tworzenia kopii zapasowych i przywracania.
Jeśli klaster usługi AKS znajduje się w sparowanym regionie, możesz skonfigurować kopie zapasowe do przechowywania w magazynie geograficznie nadmiarowym. Geograficznie nadmiarowe kopie zapasowe można przywrócić w sparowanym regionie.
Aby uzyskać więcej informacji, zobacz następujące artykuły:
- Co to jest kopia zapasowa usługi Azure Kubernetes Service?
- Tworzenie kopii zapasowej usługi AKS przy użyciu usługi Azure Backup
W przypadku większości rozwiązań nie należy polegać wyłącznie na kopiach zapasowych. Zamiast tego skorzystaj z innych możliwości opisanych w tym przewodniku, aby spełnić wymagania dotyczące odporności. Jednak kopie zapasowe chronią przed pewnymi zagrożeniami, których nie zapewniają inne podejścia. Aby uzyskać więcej informacji, zobacz Co to jest nadmiarowość, replikacja i kopia zapasowa?.
Staraj się używać klastrów bezstanowych, które minimalizują potrzebę tworzenia kopii zapasowych. Przechowywanie danych w zewnętrznych systemach magazynowania i bazach danych zamiast w klastrze.
Odporność usługi na prace konserwacyjne
Usługa AKS wykonuje konserwację klastra, w tym aktualizacje obrazów zarówno klastra, jak i węzłów. Aby upewnić się, że platforma Kubernetes utrzymuje minimalną liczbę wystąpień zasobników wymaganych do obsługi ruchu produkcyjnego nawet podczas uaktualniania, należy skonfigurować zasobniki tak, aby korzystały z budżetów zakłóceń zasobników.
Aby zmniejszyć przerwy w działaniu usługi w okresach krytycznych, usługa AKS udostępnia mechanizmy kontroli umożliwiające określenie planowanych czasów konserwacji. Aby dowiedzieć się więcej, zobacz Planowanie i kontrolowanie uaktualnień klastra usługi Azure Kubernetes Service przy użyciu planowanej konserwacji.
Umowa dotycząca poziomu usług
Umowa dotycząca poziomu usług (SLA) dla usług platformy Azure opisuje oczekiwaną dostępność każdej usługi oraz warunki, które rozwiązanie musi spełnić, aby osiągnąć te oczekiwania dotyczące dostępności. Aby uzyskać więcej informacji, zobacz Umowy SLA dotyczące usług online.
Usługa AKS oferuje trzy warstwy cenowe do zarządzania klastrami: Bezpłatna, Standardowa i Premium. Warstwa Bezpłatna umożliwia testowanie obciążeń przy użyciu usługi AKS. Poziomy Standard i Premium są przeznaczone dla obciążeń związanych z produkcją. Gdy wdrażasz klaster usługi AKS z włączeniem stref dostępności, wzrasta procent czasu pracy określony w umowie SLA. Jednak umowa SLA ma zastosowanie tylko w przypadku wdrożenia klastra w warstwie cenowej Standardowa lub Premium.