Udostępnij za pośrednictwem


Zagadnienia dotyczące zarządzania operacjami dla usługi Azure Kubernetes Service

Kubernetes to stosunkowo nowa technologia, szybko rozwijająca się z imponującym ekosystemem. W związku z tym może to być trudne do zarządzania i ochrony.

Punkt odniesienia operacji dla usługi AKS

Możesz pracować nad doskonałością operacyjną i sukcesem klientów, odpowiednio projektując rozwiązanie usługi Azure Kubernetes Service (AKS) z myślą o zarządzaniu i monitorowaniu.

Uwagi dotyczące projektowania

Rozważmy następujący czynniki:

  • Należy pamiętać o limitach usługi AKS. Użyj wielu wystąpień usługi AKS, aby skalować poza te limity.
  • Należy pamiętać o sposobach logicznego izolowania obciążeń w klastrze i fizycznie w oddzielnych klastrach.
  • Należy pamiętać o sposobach kontrolowania zużycia zasobów przez obciążenia.
  • Należy pamiętać o sposobach, aby ułatwić platformie Kubernetes zrozumienie kondycji obciążeń.
  • Należy pamiętać o różnych rozmiarach maszyn wirtualnych i wpływie korzystania z jednej lub drugiej. Większe maszyny wirtualne mogą obsługiwać większe obciążenie. Mniejsze maszyny wirtualne można łatwiej zastąpić innymi maszynami, gdy nie są dostępne w przypadku planowanej i nieplanowanej konserwacji. Należy również pamiętać o pulach węzłów i maszynach wirtualnych w zestawie skalowania, umożliwiając maszynom wirtualnym o różnych rozmiarach w tym samym klastrze. Większe maszyny wirtualne są bardziej optymalne, ponieważ usługa AKS rezerwuje mniejszy procent swoich zasobów, dzięki czemu więcej zasobów jest dostępnych dla obciążeń.
  • Należy pamiętać o sposobach monitorowania i rejestrowania usługi AKS. Platforma Kubernetes składa się z różnych składników, a monitorowanie i rejestrowanie powinno zapewnić wgląd w jego kondycję, trendy i potencjalne problemy.
  • Na podstawie monitorowania i rejestrowania może istnieć wiele zdarzeń generowanych przez platformę Kubernetes lub aplikacje działające na górze. Alerty mogą pomóc w odróżnieniu wpisów dziennika do celów historycznych i tych, które wymagają natychmiastowego działania.
  • Należy pamiętać o aktualizacjach i uaktualnieniach, które należy wykonać. Na poziomie platformy Kubernetes istnieją wersje główne, pomocnicze i poprawki. Klient powinien zastosować te aktualizacje, aby zachować wsparcie zgodnie z zasadami w nadrzędnej wersji platformy Kubernetes. Na poziomie hosta procesu roboczego poprawki jądra systemu operacyjnego mogą wymagać ponownego uruchomienia, co klient powinien wykonać i uaktualnić do nowych wersji systemu operacyjnego. Oprócz ręcznego uaktualniania klastra można ustawić kanał automatycznego uaktualniania w klastrze.
  • Należy pamiętać o ograniczeniach zasobów klastra i poszczególnych obciążeniach.
  • Należy pamiętać o różnicach między narzędziem do automatycznego skalowania zasobników poziomych i funkcją automatycznego skalowania klastra
  • Rozważ zabezpieczenie ruchu między zasobnikami przy użyciu zasad sieciowych i wtyczki zasad platformy Azure
  • Aby ułatwić rozwiązywanie problemów z aplikacją i usługami uruchomionymi w usłudze AKS, może być konieczne wyświetlenie dzienników generowanych przez składniki płaszczyzny sterowania. Możesz włączyć dzienniki zasobów dla usługi AKS, ponieważ rejestrowanie nie jest domyślnie włączone.

Zalecenia

  • Omówienie limitów usługi AKS:

  • Użyj izolacji logicznej na poziomie przestrzeni nazw, aby oddzielić aplikacje, zespoły, środowiska i jednostki biznesowe. Wielodostępność i izolacja klastra. Ponadto pule węzłów mogą pomóc w węzłach z różnymi specyfikacjami węzłów i konserwacją, takimi jak uaktualnianie wielu pul węzłów na platformie Kubernetes

  • Planowanie i stosowanie przydziałów zasobów na poziomie przestrzeni nazw. Jeśli zasobniki nie definiują żądań zasobów i limitów, odrzuć wdrożenie przy użyciu zasad itd. Nie dotyczy to zasobników kube-system, ponieważ nie wszystkie zasobniki kube-system mają żądania i limity. Monitoruj użycie zasobów i dostosuj limity przydziału zgodnie z potrzebami. Podstawowe funkcje harmonogramu

  • Dodaj sondy kondycji do zasobników. Upewnij się, że zasobniki zawierają livenessProbesondy kondycji , readinessProbei startupProbe AKS.

  • Użyj rozmiarów maszyn wirtualnych wystarczająco dużych, aby zawierać wiele wystąpień kontenera, dzięki czemu uzyskujesz korzyści ze zwiększonej gęstości, ale nie tak duże, że klaster nie może obsłużyć obciążenia węzła, w którym występują awarie.

  • Użyj rozwiązania do monitorowania. Usługa Azure Monitor container insights jest domyślnie skonfigurowana i zapewnia łatwy dostęp do wielu szczegółowych informacji. Możesz użyć integracji rozwiązania Prometheus, jeśli chcesz przejść do szczegółów lub mieć doświadczenie w korzystaniu z rozwiązania Prometheus. Jeśli chcesz również uruchomić aplikację monitorowania w usłudze AKS, należy również użyć usługi Azure Monitor do monitorowania tej aplikacji.

  • Alerty metryk usługi Azure Monitor dotyczące metryk usługi Azure Monitor umożliwiają dostarczanie powiadomień, gdy elementy wymagają akcji bezpośredniej.

  • Użyj funkcji automatycznego skalowania puli węzłów wraz z narzędziem do automatycznego skalowania zasobników w poziomie, aby zaspokoić wymagania aplikacji i ograniczyć obciążenia godzin szczytu.

  • Skorzystaj z usługi Azure Advisor, aby uzyskać zalecenia dotyczące kosztów, zabezpieczeń, niezawodności, doskonałości operacyjnej i wydajności. Ponadto należy użyć Microsoft Defender dla Chmury, aby zapobiec zagrożeniom i wykrywać je, takie jak luki w zabezpieczeniach obrazów.

  • Użyj platformy Kubernetes z obsługą usługi Azure Arc, aby zarządzać klastrami Kubernetes spoza usługi AKS na platformie Azure przy użyciu usługi Azure Policy, Defender dla Chmury, GitOps itd.

  • Użyj żądań zasobników i limitów, aby zarządzać zasobami obliczeniowymi w klastrze usługi AKS. Żądania zasobników i limity informują harmonogram platformy Kubernetes o tym, które zasoby obliczeniowe mają zostać przypisane do zasobnika.

Ciągłość działania/odzyskiwanie po awarii w celu ochrony i odzyskiwania usługi AKS

Twoja organizacja musi zaprojektować odpowiednie możliwości platformy Azure Kubernetes Service (AKS), aby spełnić określone wymagania. Te usługi aplikacji mają wymagania związane z celem czasu odzyskiwania (RTO) i celem punktu odzyskiwania (RPO). Istnieje wiele zagadnień, które należy wziąć pod uwagę w przypadku odzyskiwania po awarii usługi AKS. Pierwszym krokiem jest zdefiniowanie umowy dotyczącej poziomu usług (SLA) dla infrastruktury i aplikacji. Dowiedz się więcej o umowie SLA dla usługi Azure Kubernetes Service (AKS). Aby uzyskać informacje o miesięcznych obliczeniach czasu pracy, zobacz sekcję Szczegóły umowy SLA.

Uwagi dotyczące projektowania

Rozważmy następujący czynniki:

  • Klaster usługi AKS powinien używać wielu węzłów w puli węzłów, aby zapewnić minimalny poziom dostępności aplikacji.

  • Ustawianie żądań zasobników i limitów. Ustawienie tych limitów umożliwia platformie Kubernetes:

    • Wydajne nadawanie zasobnikom zasobów procesora CPU i pamięci.
    • Mają większą gęstość kontenerów w węźle.

    Limity mogą również zwiększyć niezawodność dzięki zmniejszeniu kosztów ze względu na lepsze wykorzystanie sprzętu.

  • Odpowiedniość usługi AKS dla Strefy dostępności lub zestawów dostępności.

    • Wybierz region, który obsługuje Strefy dostępności.
    • Strefy dostępności można ustawić tylko wtedy, gdy pula węzłów zostanie utworzona i nie można jej zmienić później. Obsługa wielu stref dotyczy tylko pul węzłów.
    • Aby uzyskać pełną korzyść strefową, wszystkie zależności usług muszą również obsługiwać strefy. Jeśli usługa zależna nie obsługuje stref, awaria strefy może spowodować niepowodzenie tej usługi.
    • Uruchom wiele klastrów usługi AKS w różnych sparowanych regionach, aby uzyskać większą dostępność poza tym, co Strefy dostępności można osiągnąć. Jeśli zasób platformy Azure obsługuje nadmiarowość geograficzną, podaj lokalizację, w której usługa nadmiarowa ma swój region pomocniczy.
  • Należy znać wytyczne dotyczące odzyskiwania po awarii w usłudze AKS. Następnie zastanów się, czy mają zastosowanie do klastrów usługi AKS używanych w usłudze Azure Dev Spaces.

  • Spójne tworzenie kopii zapasowych dla aplikacji i danych.

    • Usługa niestanowa może być wydajnie replikowana.
    • Jeśli musisz przechowywać stan w klastrze, wykonaj kopię zapasową danych często w sparowanym regionie. Jedną z kwestii jest to, że prawidłowe przechowywanie stanu w klastrze może być skomplikowane.
  • Aktualizowanie i konserwacja klastra.

    • Zawsze aktualizuj klaster.
    • Należy pamiętać o procesie wydawania i wycofywania.
    • Zaplanuj aktualizacje i konserwację.
  • Łączność sieciowa w przypadku przejścia w tryb failover.

    • Wybierz router ruchu, który może dystrybuować ruch między strefami lub regionami, w zależności od wymagań. Ta architektura wdraża usługę Azure Load Balancer , ponieważ może dystrybuować ruch nienależący do sieci Web między strefami.
    • Jeśli musisz dystrybuować ruch między regionami, rozważ użycie usługi Azure Front Door.
  • Planowane i nieplanowane przejścia w tryb failover.

    • Podczas konfigurowania każdej usługi platformy Azure wybierz funkcje, które obsługują odzyskiwanie po awarii. Na przykład ta architektura umożliwia usłudze Azure Container Registry replikację geograficzną. Nadal można ściągać obrazy z zreplikowanego regionu, jeśli region ulegnie awarii.
  • Obsługa możliwości inżynieryjnych metodyki DevOps w celu osiągnięcia celów na poziomie usług.

  • Ustal, czy potrzebujesz umowy SLA wspieranej finansowo dla punktu końcowego serwera interfejsu API Platformy Kubernetes.

Zalecenia dotyczące projektowania

Poniżej przedstawiono najlepsze rozwiązania dotyczące projektu:

  • Użyj trzech węzłów dla puli węzłów systemowych. W przypadku puli węzłów użytkownika zacznij od nie mniej niż dwóch węzłów. Jeśli potrzebujesz wyższej dostępności, skonfiguruj więcej węzłów.

  • Izoluj aplikację od usług systemowych, umieszczając ją w oddzielnej puli węzłów. Dzięki temu usługi Kubernetes działają w dedykowanych węzłach i nie konkurują z innymi usługami. Użyj tagów, etykiet i defektów, aby zidentyfikować pulę węzłów , aby zaplanować obciążenie.

  • Regularne utrzymywanie klastra, na przykład terminowe aktualizowanie, ma kluczowe znaczenie dla niezawodności. Pamiętaj o oknie pomocy technicznej dla wersji platformy Kubernetes w usłudze AKS i zaplanuj aktualizacje. Zaleca się również monitorowanie kondycji zasobników za pośrednictwem sond.

  • Jeśli to możliwe, usuń stan usługi z kontenerów. Zamiast tego należy użyć platformy Azure jako usługi (PaaS), która obsługuje replikację w wielu regionach.

  • Upewnij się, że zasoby zasobnika. Zdecydowanie zaleca się, aby wdrożenia określały wymagania dotyczące zasobów zasobnika. Harmonogram może następnie odpowiednio zaplanować zasobnik. Niezawodność jest przestarzała, gdy zasobniki nie są zaplanowane.

  • Skonfiguruj wiele replik we wdrożeniu, aby obsługiwać zakłócenia, takie jak awarie sprzętowe. W przypadku planowanych zdarzeń, takich jak aktualizacje i uaktualnienia, budżet zakłóceń może zapewnić, że istnieje wymagana liczba replik zasobników do obsługi oczekiwanego obciążenia aplikacji.

  • Aplikacje mogą używać usługi Azure Storage dla swoich danych. Ponieważ aplikacje są rozmieszczone w wielu klastrach usługi AKS w różnych regionach, należy zachować synchronizację magazynu. Poniżej przedstawiono dwa typowe sposoby replikowania magazynu:

    • Replikacja asynchroniczna oparta na infrastrukturze
    • Replikacja asynchroniczna oparta na aplikacji
  • Szacowanie limitów zasobników. Przetestuj i ustanów punkt odniesienia. Zacznij od równych wartości dla żądań i limitów. Następnie stopniowo dostrajaj te wartości do momentu ustanowienia progu, który może spowodować niestabilność klastra. Limity zasobników można określić w manifestach wdrożenia.

    Wbudowane funkcje stanowią rozwiązanie złożonego zadania obsługi błędów i zakłóceń w architekturze usługi. Te konfiguracje ułatwiają zarówno automatyzację projektowania, jak i wdrażania. Gdy organizacja zdefiniowała standard dla umowy SLA, celu czasu odzyskiwania i celu punktu odzyskiwania, może używać wbudowanych usług do platformy Kubernetes i platformy Azure w celu osiągnięcia celów biznesowych.

  • Ustaw budżety zakłóceń zasobników. To ustawienie sprawdza, ile replik we wdrożeniu można ściągnąć podczas zdarzenia aktualizacji lub uaktualnienia.

  • Wymuszanie przydziałów zasobów w przestrzeniach nazw usługi. Limit przydziału zasobów w przestrzeni nazw zapewnia prawidłowe ustawienie żądań zasobników i limitów we wdrożeniu.

    • Ustawienie limitów przydziału zasobów na poziomie klastra może powodować problemy podczas wdrażania usług partnerskich, które nie mają odpowiednich żądań i limitów.
  • Przechowuj obrazy kontenerów w usłudze Azure Container Registry i replikuj geograficznie rejestr do każdego regionu usługi AKS.

  • Skorzystaj z umowy SLA czasu pracy, aby włączyć umowę SLA wspieraną finansowo, wyższą umowę SLA dla wszystkich klastrów obsługujących obciążenia produkcyjne. Umowa SLA dotycząca czasu pracy gwarantuje dostępność punktu końcowego serwera interfejsu Kubernetes API dla klastrów korzystających ze stref dostępności na poziomie 99,95% oraz dostępność na poziomie 99,9% w przypadku klastrów, które nie korzystają ze stref dostępności. Węzły, pule węzłów i inne zasoby są objęte umową SLA. Usługa AKS oferuje warstwę bezpłatną z celem poziomu usług (SLO) w wysokości 99,5% dla składników płaszczyzny sterowania. Klastry bez włączonej umowy SLA czasu pracy nie powinny być używane dla obciążeń produkcyjnych.

  • Użyj wielu regionów i lokalizacji komunikacji równorzędnej na potrzeby łączności usługi Azure ExpressRoute .

    Jeśli wystąpi awaria wpływająca na region platformy Azure lub lokalizację dostawcy komunikacji równorzędnej, nadmiarowa architektura sieci hybrydowej może pomóc zapewnić nieprzerwaną łączność między lokalizacjami.

  • Łączenie regionów z globalną komunikacją równorzędną sieci wirtualnych. Jeśli klastry muszą komunikować się ze sobą, połączenie obu sieci wirtualnych ze sobą można osiągnąć za pośrednictwem komunikacji równorzędnej sieci wirtualnych. Ta technologia łączy ze sobą sieci wirtualne, zapewniając wysoką przepustowość sieci szkieletowej firmy Microsoft, nawet w różnych regionach geograficznych.

  • Korzystając z podzielonego protokołu emisji opartego na protokole TCP, usługa Azure Front Door zapewnia, że użytkownicy końcowi będą szybko łączyć się z najbliższym punktem obecności usługi Front Door. Inne funkcje usługi Azure Front Door obejmują:

    • Zakończenie szyfrowania TLS
    • Domena niestandardowa
    • Web Application Firewall
    • Regenerowanie adresów URL
    • Koligacja sesji

    Przejrzyj potrzeby ruchu aplikacji, aby dowiedzieć się, które rozwiązanie jest najbardziej odpowiednie.