Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Kubernetes Service (AKS) to zarządzana usługa Kubernetes, której można użyć do wdrażania konteneryzowanych aplikacji i zarządzania nimi. Podobnie jak w przypadku innych usług zarządzanych usługa AKS odciąża większość obciążeń operacyjnych na platformie Azure, zapewniając jednocześnie wysoką dostępność, skalowalność i przenośność funkcji dla obciążenia.
W tym artykule przyjęto założenie, że jako architekt przejrzyliśmy drzewo decyzyjne obliczeń i wybraliśmy usługę AKS jako zasoby obliczeniowe dla obciążenia. Wskazówki zawarte w tym artykule zawierają zalecenia dotyczące architektury, które odnoszą się do zasad filarów struktury Azure Well-Architected Framework.
Ważne
Jak używać tego przewodnika
Każda sekcja zawiera listę kontrolną projektu , która przedstawia zagadnienia dotyczące architektury wraz ze strategiami projektowania zlokalizowanymi w zakresie technologii.
Dostępne są również zalecenia dotyczące możliwości technologicznych, które mogą pomóc zmaterializować te strategie. Zalecenia nie reprezentują wyczerpującej listy wszystkich konfiguracji, które są dostępne dla usługi AKS i jej zależności. Zamiast tego przedstawiają listę kluczowych zaleceń dopasowywanych do perspektyw projektowych. Skorzystaj z zaleceń, aby utworzyć weryfikację koncepcji lub zoptymalizować istniejące środowiska.
Bazowa architektura, która przedstawia kluczowe zalecenia: bazowa architektura AKS.
Zakres technologii
Ten przegląd koncentruje się na powiązanych decyzjach dotyczących następujących zasobów platformy Azure:
- Usługa AKS
Podczas omawiania najlepszych rozwiązań filarów platformy Well-Architected Framework dla usługi AKS ważne jest rozróżnienie między klastrem a obciążeniem. Najlepsze rozwiązania dotyczące klastra są wspólną odpowiedzialnością administratora klastra i dostawcy zasobów, podczas gdy najlepsze rozwiązania dotyczące obciążeń są domeną dewelopera. Ten artykuł zawiera zagadnienia i zalecenia dotyczące każdej z tych ról.
Uwaga
Poniższe filary obejmują listę kontrolną projektu i listę zaleceń , które wskazują, czy każdy wybór ma zastosowanie do architektury klastra , architektury obciążenia , czy obu tych elementów.
Niezawodność
Celem filaru niezawodności jest zapewnienie ciągłej funkcjonalności poprzez budowanie wystarczającej odporności i zdolności do szybkiego odzyskiwania po awariach.
zasady projektowania niezawodności zapewniają ogólną strategię projektowania stosowaną dla poszczególnych składników, przepływów systemowych i całego systemu.
Lista kontrolna projektu
Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu pod kątem niezawodności. Określ jego znaczenie dla wymagań biznesowych, pamiętając o funkcjach usługi AKS i jej zależnościach. Rozszerz strategię w celu uwzględnienia większej liczby podejść zgodnie z potrzebami.
(Klaster) Tworzenie nadmiarowości w celu zwiększenia odporności. Użyj stref dostępności dla klastrów usługi AKS w ramach strategii odporności, aby zwiększyć dostępność podczas wdrażania w jednym regionie. Wiele regionów świadczenia usługi Azure zapewnia strefy dostępności. Strefy są wystarczająco blisko, aby mieć między sobą połączenia o małych opóźnieniach, ale wystarczająco daleko od siebie, aby zmniejszyć prawdopodobieństwo wystąpienia lokalnych awarii będzie miało wpływ na więcej niż jedną strefę.
W przypadku obciążeń krytycznych należy wdrożyć wiele klastrów w różnych regionach świadczenia usługi Azure. Dzięki geograficznej dystrybucji klastrów usługi AKS można osiągnąć większą odporność i zminimalizować skutki awarii regionalnych. Strategia wieloregionowa pomaga zmaksymalizować dostępność i zapewnić ciągłość działalności biznesowej. Obciążenia dostępne z Internetu powinny korzystać z Azure Front Door lub Azure Traffic Manager do globalnego kierowania ruchu między klastrami AKS. Aby uzyskać więcej informacji, zobacz Strategia w wielu regionach.
Zaplanuj przestrzeń adresów IP, aby klaster mógł niezawodnie skalować się i obsługiwać ruch w sytuacjach awarii w topologii wielu klastrów.
(Klaster i obciążenie) Monitorowanie niezawodności i ogólnych wskaźników kondycji klastra i obciążeń. Zbieranie dzienników i metryk w celu monitorowania kondycji obciążenia, identyfikowania trendów wydajności i niezawodności oraz rozwiązywania problemów. Przejrzyj artykuł Best practices for monitoring Kubernetes with Azure Monitor and the Well-Architected Health modeling for workloads guide for workloads guide for workloads help design the reliability and health monitoring solution for your AKS solution (Najlepsze rozwiązania dotyczące monitorowania niezawodności i kondycji na potrzeby rozwiązania AKS).
Upewnij się, że obciążenia są tworzone w celu obsługi skalowania w poziomie oraz raportują gotowość i kondycję aplikacji.
(Klaster i obciążenie) Hostowanie zasobników aplikacji w pulach węzłów użytkownika. Dzięki izolowaniu zasobników systemowych z obciążeń aplikacji pomagasz upewnić się, że podstawowe usługi AKS nie mają wpływu na wymagania dotyczące zasobów lub potencjalne problemy spowodowane przez obciążenie uruchamiające pule węzłów użytkownika.
Upewnij się, że obciążenie robocze działa na pulach węzłów użytkownika i wybierz konstrukcję SKU odpowiedniej wielkości. Co najmniej uwzględnij dwa węzły dla pul węzłów użytkownika i trzy węzły dla puli węzłów systemowych.
(Klaster i obciążenie) Uwzględnij umowę dotyczącą czasu pracy usługi AKS (SLA) do celów dostępności i odzyskiwania. Aby zdefiniować cele niezawodności i odzyskiwania dla klastra i obciążenia, postępuj zgodnie ze wskazówkami w temacie Zalecenia dotyczące definiowania celów niezawodności. Następnie sformułuj projekt spełniający te cele.
(Klaster i obciążenie) Chroń usługę klastra AKS za pomocą Azure Backup, przechowując punkty odzyskiwania w skarbcu kopii zapasowych i wykonując przywracanie w przypadku jakiejkolwiek sytuacji awaryjnej. Aby utworzyć kopię zapasową i przywrócić konteneryzowane aplikacje i dane uruchomione w klastrach usługi AKS, postępuj zgodnie ze wskazówkami w artykule Omówienie tworzenia kopii zapasowej usługi AKS na potrzeby konfigurowania ochrony.
Zalecenia
Zalecenie | Korzyści |
---|---|
(Klaster i obciążenie) Kontrolowanie planowania zasobników przy użyciu selektorów węzłów i koligacji. W usłudze AKS, harmonizator Kubernetes może logicznie izolować obciążenia w oparciu o sprzęt w węźle. W przeciwieństwie do tolerancji zasobniki, które nie mają pasującego selektora węzłów, można zaplanować na węzłach oznaczonych etykietami, ale priorytet jest przypisywany zasobnikom definiującym pasujący selektor węzłów. |
Koligacja węzła zapewnia większą elastyczność, co pozwala określić, co się stanie, jeśli zasobnik nie może być dopasowany do węzła. |
(Klaster) Wybierz odpowiednią wtyczkę sieciową na podstawie wymagań sieciowych i rozmiaru klastra. Różne wtyczki sieciowe zapewniają różne poziomy funkcjonalności. Interfejs azure Container Networking Interface (Azure CNI) jest wymagany w określonych scenariuszach, takich jak pule węzłów oparte na systemie Windows, niektóre wymagania dotyczące sieci i zasady sieci Kubernetes. Aby uzyskać więcej informacji, zobacz Kubenet vs Azure CNI. |
Odpowiednia wtyczka sieciowa może pomóc zapewnić lepszą zgodność i wydajność. |
(Klaster i obciążenie) Użyj umowy SLA czasu działania usługi AKS dla klastrów klasy produkcyjnej. | Obciążenie może obsługiwać wyższe cele dostępności ze względu na wyższe gwarancje dostępności punktu końcowego serwera API Kubernetes dla klastrów AKS. |
(Klaster) Użyj stref dostępności , aby zmaksymalizować odporność w regionie świadczenia usługi Azure przez dystrybucję węzłów agenta usługi AKS w fizycznie oddzielnych centrach danych. Jeśli istnieją wymagania dotyczące współlokalności, użyj regularnego wdrożenia usługi AKS opartego na skalowalnych zestawach maszyn wirtualnych w jednej strefie lub użyj grup umieszczania w pobliżu, aby zminimalizować opóźnienia międzywęzłowego. |
Rozmieszczając pule węzłów w wielu strefach, węzły w jednej puli węzłów nadal działają, nawet jeśli inna strefa ulegnie awarii. |
(Klaster i obciążenie) Zdefiniuj żądania zasobów dla podów oraz ich limity w manifestach wdrożeniowych aplikacji. Wymuś te limity przy użyciu usługi Azure Policy. | Limity zasobów procesora CPU i pamięci kontenera są niezbędne, aby zapobiec wyczerpaniu zasobów w klastrze Kubernetes. |
(Klaster i obciążenie) Zachowaj pulę węzłów systemowych odizolowaną od obciążeń aplikacji. Grupy węzłów systemowych wymagają parametru SKU maszyny wirtualnej z co najmniej 2 wirtualnymi procesorami i 4 GB pamięci. Zalecamy użycie co najmniej 4 procesorów wirtualnych. Aby uzyskać więcej informacji, zobacz Pule węzłów systemu i użytkownika. |
Pula węzłów systemowych hostuje krytyczne zasobniki systemowe, które są niezbędne dla płaszczyzny kontrolnej klastra. Izolując te zasobniki systemowe z obciążeń aplikacji, możesz upewnić się, że podstawowe usługi nie mają wpływu na wymagania dotyczące zasobów lub potencjalne problemy spowodowane obciążeniem. |
(Klaster i obciążenie) Oddziel aplikacje w dedykowane pule węzłów na podstawie określonych wymagań. Unikaj dużej liczby pul węzłów, aby zmniejszyć nakład pracy związany z zarządzaniem. | Aplikacje mogą współdzielić tę samą konfigurację i wymagać maszyn wirtualnych z obsługą procesora GPU, procesorów CPU lub maszyn wirtualnych zoptymalizowanych pod kątem pamięci lub możliwości skalowania do zera. Przydzielając pule węzłów określonym aplikacjom, możesz pomóc w zapewnieniu, że każda aplikacja otrzymuje potrzebne zasoby bez ich nadmiernego przydzielania lub niedostatecznego wykorzystania. |
(Klaster) Użyj bramy NAT dla klastrów, które uruchamiają obciążenia tworzące wiele współbieżnych połączeń wychodzących. | Usługa Azure NAT Gateway obsługuje niezawodny ruch wychodzący na dużą skalę i pomaga uniknąć problemów z niezawodnością, stosując ograniczenia usługi Azure Load Balancer do dużego współbieżnego ruchu wychodzącego. |
(Klaster i obciążenie) Użyj usługi Azure Backup, aby chronić klaster usługi AKS i przywracać go do alternatywnych regionów podczas awarii. Usługa Azure Backup obsługuje operacje tworzenia kopii zapasowych i przywracania konteneryzowanych aplikacji oraz danych uruchomionych zarówno dla danych stanu klastra, jak i aplikacji. Kopie zapasowe można używać w regionalnym scenariuszu awarii i odzyskiwaniu kopii zapasowych. |
Usługa Azure Backup z usługą Azure Kubernetes Service (AKS) oferuje w pełni zarządzane, skalowalne, bezpieczne i ekonomiczne rozwiązanie. Zwiększa niezawodność obciążenia bez złożoności konfigurowania i utrzymywania infrastruktury kopii zapasowych. |
Zabezpieczenia
Celem filaru Zabezpieczenia jest zapewnienie gwarancji dotyczących poufności, integralności i dostępności obciążenia.
Zasady projektowania zabezpieczeń zapewniają strategię projektowania wysokiego poziomu w celu osiągnięcia tych celów, stosując podejścia do projektu technicznego usługi AKS.
Lista kontrolna projektu
Rozpocznij strategię projektowania w oparciu o listę kontrolną przeglądu projektu dla zabezpieczeń i identyfikuj luki w zabezpieczeniach oraz mechanizmy kontroli, aby podnieść poziom bezpieczeństwa. Zapoznaj się z pojęciami dotyczącymi zabezpieczeń usługi AKS i oceń zalecenia dotyczące wzmocnienia zabezpieczeń według testu porównawczego CIS Kubernetes. Rozszerz strategię w celu uwzględnienia większej liczby podejść zgodnie z potrzebami.
(Klaster) Integracja z identyfikatorem Entra firmy Microsoft na potrzeby zarządzania tożsamościami i dostępem. Scentralizowane zarządzanie tożsamościami dla klastra przy użyciu identyfikatora Entra firmy Microsoft. Każda zmiana stanu konta użytkownika lub grupy jest automatycznie aktualizowana w dostępie do klastra usługi AKS. Ustanów tożsamość jako podstawowy obwód zabezpieczeń. Deweloperzy i właściciele aplikacji klastra Kubernetes muszą mieć dostęp do różnych zasobów.
Użyj kontroli dostępu opartej na rolach (RBAC) platformy Kubernetes z identyfikatorem Entra firmy Microsoft, aby uzyskać dostęp do najniższych uprawnień. Ochrona konfiguracji i tajnych informacji przez zminimalizowanie przydzielania uprawnień administratora.
(Klaster) Integracja z narzędziami do monitorowania zabezpieczeń i informacji o zabezpieczeniach oraz zarządzania zdarzeniami. Usługa Microsoft Defender for Containers z usługą Microsoft Sentinel umożliwia wykrywanie i szybkie reagowanie na zagrożenia w klastrach i obciążeniach uruchamianych na nich. Włącz łącznik usługi AKS dla usługi Microsoft Sentinel , aby przesyłać strumieniowo dzienniki diagnostyczne usługi AKS do usługi Microsoft Sentinel.
(Klaster i obciążenie) Zaimplementować segmentację i kontrolę sieci. Aby zapobiec eksfiltracji danych, upewnij się, że dozwolony jest tylko autoryzowany i bezpieczny ruch oraz ogranicz promień rażenia naruszenia zabezpieczeń.
Rozważ użycie prywatnego klastra AKS, aby zagwarantować, że ruch związany z zarządzaniem klastrem do serwera API pozostanie w Twojej prywatnej sieci. Możesz też użyć listy dozwolonych serwera interfejsu API dla klastrów publicznych.
(Obciążenie) Użyj zapory aplikacji internetowej (WAF), aby skanować ruch przychodzący pod kątem potencjalnych ataków. Zapora aplikacji internetowej może wykrywać i ograniczać zagrożenia w czasie rzeczywistym, aby ułatwić blokowanie złośliwego ruchu przed dotarciem do aplikacji. Zapewnia niezawodną ochronę przed typowymi atakami internetowymi, takimi jak wstrzyknięcie kodu SQL, wykonywanie skryptów między witrynami i inne luki w zabezpieczeniach projektu open Web Application Security. Niektóre moduły równoważenia obciążenia, takie jak azure Application Gateway lub Azure Front Door , mają zintegrowaną zaporę aplikacji internetowej.
(Obciążenie) Zachowaj łańcuch dostaw oprogramowania ze wzmocnionym obciążeniem. Upewnij się, że potok ciągłej integracji i ciągłego dostarczania jest wzmocniony dzięki skanowaniu obsługującym kontenery.
(Klaster i obciążenie) Zaimplementuj dodatkową ochronę dla wyspecjalizowanych bezpiecznych obciążeń. Jeśli klaster musi uruchomić poufne obciążenie, może być konieczne wdrożenie klastra prywatnego. Oto kilka przykładów:
- Standard Bezpieczeństwa Danych Branży Kart Płatniczych (PCI-DSS 3.2.1): regulowany klaster AKS dla PCI-DSS 3.2.1
- Obsługa i wymagania dotyczące poziomu DoD Impact Level 5 (IL5) w usłudze AKS: Wymagania dotyczące izolacji usługi Azure Government IL5.
Zalecenia
Zalecenie | Korzyści |
---|---|
(Klaster) Użyj tożsamości zarządzanych w klastrze. | Możesz uniknąć kosztów administracyjnych związanych z zarządzaniem i rotacją zasad dostępu do usługi. |
(Obciążenie) Użyj identyfikatora obciążenia Entra firmy Microsoft z usługą AKS , aby uzyskać dostęp do chronionych zasobów firmy Microsoft, takich jak Azure Key Vault i Microsoft Graph, z obciążenia. | Użyj identyfikatorów obciążeń usługi AKS, aby chronić dostęp do zasobów platformy Azure przy użyciu Microsoft Entra ID RBAC, bez konieczności bezpośredniego zarządzania poświadczeniami w kodzie. |
(Klaster) Użyj identyfikatora Entra firmy Microsoft do uwierzytelniania za pomocą usługi Azure Container Registry z usługi AKS. | Za pomocą Microsoft Entra ID, usługa AKS może uwierzytelniać się w Rejestrze kontenerów bez używania sekretów imagePullSecrets . |
(Klaster) Zabezpiecz ruch sieciowy do serwera API przy użyciu prywatnego klastra usługi AKS, jeśli wymagania dotyczące obciążenia wymagają wyższych poziomów segmentacji. | Domyślnie ruch sieciowy między pulami węzłów a serwerem interfejsu API podróżuje siecią szkieletową firmy Microsoft. Korzystając z klastra prywatnego, możesz zapewnić, że ruch sieciowy do serwera interfejsu API pozostaje tylko w sieci prywatnej. |
(Klaster) W przypadku publicznych klastrów usługi AKS użyj zakresów adresów IP autoryzowanych przez serwer API. Uwzględnij źródła, takie jak publiczne adresy IP agentów kompilacji wdrożenia, zarządzanie operacjami i punkt ruchu wychodzącego pul węzłów, takie jak usługa Azure Firewall. | W przypadku korzystania z klastrów publicznych można znacznie zmniejszyć obszar ataków klastra usługi AKS, ograniczając ruch, który może dotrzeć do serwera interfejsu API klastrów. |
(Klaster) Chroń serwer API za pomocą Microsoft Entra ID RBAC. Wyłącz konta lokalne , aby wymusić cały dostęp do klastra przy użyciu tożsamości opartych na identyfikatorze Firmy Microsoft. |
Zabezpieczanie dostępu do serwera interfejsu API Kubernetes jest jedną z najważniejszych rzeczy, które można wykonać w celu zabezpieczenia klastra. Zintegruj kontrolę dostępu na podstawie ról platformy Kubernetes z identyfikatorem Firmy Microsoft Entra, aby kontrolować dostęp do serwera interfejsu API. |
(Klaster) Użyj zasad sieciowych platformy Azure lub Calico. | Za pomocą zasad można zabezpieczyć i kontrolować ruch sieciowy między zasobnikami w klastrze. Calico zapewnia bogatszy zestaw możliwości, w tym kolejność zasad i priorytet, reguły odmowy i bardziej elastyczne reguły dopasowania. |
(Klaster) Zabezpieczanie klastrów i zasobników przy użyciu usługi Azure Policy. | Usługa Azure Policy może pomóc w zastosowaniu wymuszania na dużą skalę i zabezpieczeń w klastrach w sposób scentralizowany i spójny. Może również kontrolować, jakie zasobniki mają przyznane funkcje i wykrywać, czy coś działa wbrew zasadom firmy. |
(Klaster) Zabezpieczanie dostępu kontenera do zasobów. Ogranicz dostęp do czynności, które mogą wykonywać kontenery. Udzielaj minimalnych uprawnień i unikaj używania przywilejów roota lub eskalacji uprawnień. W przypadku kontenerów opartych na systemie Linux zobacz Zabezpieczenia dostępu kontenera do zasobów przy użyciu wbudowanych funkcji zabezpieczeń systemu Linux. |
Ograniczając uprawnienia i unikając używania eskalacji root lub uprzywilejowanej, możesz zmniejszyć ryzyko naruszenia zabezpieczeń. Możesz pomóc w zapewnieniu, że nawet w przypadku naruszenia zabezpieczeń kontenera możliwe jest zminimalizowanie potencjalnych szkód. |
(Klaster) Steruj ruchem wychodzącym klastra, upewniając się, że ruch wychodzący klastra przechodzi przez sieciowy punkt zabezpieczeń, taki jak usługa Azure Firewall lub serwer proxy HTTP. | Rozsyłając ruch wychodzący przez usługę Azure Firewall lub serwer proxy HTTP, możesz pomóc w wymuszaniu zasad zabezpieczeń, które uniemożliwiają nieautoryzowany dostęp i eksfiltrację danych. Takie podejście upraszcza również administrowanie zasadami zabezpieczeń i ułatwia wymuszanie spójnych reguł w całym klastrze usługi AKS. |
(Klaster) Użyj identyfikatora obciążenia open source firmy Microsoft i sterownika CSI magazynu wpisów tajnych firmy Microsoft z usługą Key Vault. | Te funkcje ułatwiają ochronę i rotację wpisów tajnych, certyfikatów i parametrów połączenia w usłudze Key Vault przy użyciu silnego szyfrowania. Zapewniają one dziennik audytu dostępu i utrzymują podstawowe tajemnice z dala od potoku wdrażania. |
(Klaster) Użyj usługi Microsoft Defender for Containers. | Usługa Microsoft Defender for Containers ułatwia monitorowanie i konserwację zabezpieczeń klastrów, kontenerów i aplikacji. |
Optymalizacja kosztów
Optymalizacja kosztów koncentruje się na wykrywaniu wzorców wydatków, określaniu priorytetów inwestycji w krytycznych obszarach i optymalizacji w innych w celu spełnienia budżetu organizacji przy jednoczesnym spełnieniu wymagań biznesowych.
Zasady projektowania optymalizacji kosztów zapewniają strategię projektowania wysokiego poziomu w celu osiągnięcia tych celów i podejmowania kompromisów zgodnie z potrzebami w projekcie technicznym związanym z usługą AKS i jego środowiskiem.
Lista kontrolna projektu
Rozpocznij strategię projektową, opierając się na liście kontrolnej przeglądu projektu dla optymalizacji kosztów związanych z inwestycjami. Dostosuj projekt tak, aby obciążenie było dostosowane do budżetu przydzielonego dla obciążenia. Projekt powinien korzystać z odpowiednich możliwości platformy Azure, monitorować inwestycje i znajdować możliwości optymalizacji w czasie.
(Klaster) Uwzględnij warstwy cenowe dla usługi AKS w modelu kosztów. Aby oszacować koszty, skorzystaj z kalkulatora cen platformy Azure i przetestuj różne konfiguracje i plany płatności w kalkulatorze.
(Klaster) Uzyskaj najlepsze ceny dla swojego obciążenia. Użyj odpowiedniego SKU maszyny wirtualnej dla każdej puli węzłów, ponieważ bezpośrednio wpływa to na koszt uruchamiania swoich obciążeń. Wybór maszyny wirtualnej o wysokiej wydajności bez odpowiedniego wykorzystania może prowadzić do marnego wydatków. Wybranie mniej wydajnej maszyny wirtualnej może spowodować problemy z wydajnością i zwiększyć przestoje.
Jeśli pojemność jest odpowiednio planowana, a obciążenie jest przewidywalne i będzie istnieć przez dłuższy czas, zarejestruj się w celu uzyskania rezerwacji platformy Azure lub planu oszczędności , aby zmniejszyć koszty zasobów.
Wybierz pozycję Maszyny wirtualne typu spot platformy Azure , aby korzystać z nieuprawnionej pojemności platformy Azure z znaczącymi rabatami. Rabaty te mogą osiągnąć do 90% cen płatności zgodnie z rzeczywistym użyciem. Jeśli platforma Azure potrzebuje pojemności z powrotem, infrastruktura platformy Azure eksmituje węzły typu Spot.
Jeśli uruchamiasz usługę AKS lokalnie lub na brzegu sieci, możesz również użyć korzyści użycia hybrydowego platformy Azure , aby zmniejszyć koszty uruchamiania konteneryzowanych aplikacji w tych scenariuszach.
(Klaster i obciążenie) Optymalizuj koszty elementów obciążenia. Wybierz najbardziej ekonomiczny region dla swojego obciążenia. Oceń wymagania dotyczące kosztów, opóźnień i zgodności, aby upewnić się, że obciążenie jest opłacalne i że nie ma to wpływu na klientów ani nie tworzy dodatkowych opłat za sieć. Region, w którym wdrażasz obciążenie na platformie Azure, może znacząco wpłynąć na koszt. Ze względu na wiele czynników koszt zasobów różni się w zależności od regionu na platformie Azure.
Zachowaj małe i zoptymalizowane obrazy, aby zmniejszyć koszty, ponieważ nowe węzły muszą pobrać te obrazy. Błędy żądań użytkownika lub przekroczenia limitu czasu podczas uruchamiania aplikacji mogą prowadzić do nadmiernej aprowizacji. Twórz obrazy w sposób umożliwiający uruchamianie kontenera tak szybko, jak to możliwe, aby uniknąć błędów i przekroczenia limitu czasu.
Zapoznaj się z zaleceniami dotyczącymi optymalizacji kosztów w artykule Najlepsze rozwiązania dotyczące monitorowania platformy Kubernetes za pomocą usługi Azure Monitor , aby określić najlepszą strategię monitorowania obciążeń. Przeanalizuj metryki wydajności, począwszy od procesora CPU, pamięci, magazynu i sieci, aby zidentyfikować możliwości optymalizacji kosztów według klastra, węzłów i przestrzeni nazw.
(Klaster i obciążenie) Optymalizowanie kosztów skalowania obciążeń. Rozważ alternatywne konfiguracje skalowania w pionie i poziomie, aby zmniejszyć koszty skalowania, jednocześnie spełniając wszystkie wymagania dotyczące obciążenia. Używaj skalowania automatycznego, aby zmniejszyć zasoby, gdy obciążenia są mniej aktywne.
(Klaster i obciążenie) Zbieraj i analizuj dane dotyczące kosztów. Podstawą umożliwienia optymalizacji kosztów jest rozszerzenie klastra zmniejszającego koszty. Opracuj sposób myślenia o wydajności kosztów, który obejmuje współpracę między zespołami finansowymi, operacyjnymi i inżynieryjnymi w celu dostosowania celów oszczędzania kosztów i zapewnienia przejrzystości kosztów chmury.
Zalecenia
Zalecenie | Korzyści |
---|---|
(Klaster i obciążenie) Dopasuj wybór jednostki SKU usługi AKS i rozmiar dysku zarządzanego z wymaganiami dotyczącymi obciążenia. | Dopasowanie wyboru do wymagań dotyczących obciążeń pomaga zagwarantować, że nie płacisz za niepotrzebne zasoby. |
(Klaster) Wybierz odpowiednie typy maszyn wirtualnych dla pul węzłów usługi AKS. Aby określić odpowiednie typy wystąpień maszyn wirtualnych, rozważ charakterystyki obciążeń, wymagania dotyczące zasobów i potrzeby dotyczące dostępności. |
Wybór odpowiedniego typu wystąpienia VM ma kluczowe znaczenie, ponieważ bezpośrednio wpływa na koszt uruchamiania aplikacji w AKS. Wybór wystąpienia o wysokiej wydajności bez odpowiedniego wykorzystania może prowadzić do niepotrzebnych wydatków. Wybranie słabszego wystąpienia może prowadzić do problemów z wydajnością i zwiększonego przestoju. |
(Klaster) Wybierz maszyny wirtualne na podstawie bardziej wydajnej architektury usługi Azure Resource Manager. Usługa AKS obsługuje tworzenie pul węzłów Arm64 oraz połączenie węzłów o architekturze Intel z węzłami Resource Manager w klastrze. | Architektura Arm64 zapewnia lepszy stosunek cen do wydajności ze względu na niższe wykorzystanie mocy i wydajną wydajność obliczeniową. Te możliwości mogą zapewnić lepszą wydajność przy niższych kosztach. |
(Klaster) Włącz narzędzie do automatycznego skalowania klastra , aby automatycznie zmniejszyć liczbę węzłów agenta w odpowiedzi na nadmiarową pojemność zasobów. | Automatyczne skalowanie w dół liczby węzłów w klastrze usługi AKS umożliwia uruchamianie wydajnego klastra, gdy zapotrzebowanie jest niskie i zwiększenie liczby węzłów w przypadku wzrostu zapotrzebowania. |
(Klaster) Włącz automatyczne aprowizowanie węzłów w celu zautomatyzowania wyboru typu SKU maszyny wirtualnej. | Automatyczna aprowizacja węzła upraszcza proces wyboru jednostki SKU i decyduje, na podstawie oczekujących wymagań dotyczących zasobów zasobników, optymalnej konfiguracji maszyny wirtualnej do uruchamiania obciążeń w najbardziej wydajny i ekonomiczny sposób. |
(Użycie) Użyj HorizontalPodAutoscaler, aby dostosować liczbę podów w wdrożeniu w zależności od wykorzystania CPU lub innych metryk. | Automatyczne skalowanie w dół liczby podów, gdy zapotrzebowanie jest niskie, i skalowanie w górę, gdy zapotrzebowanie zwiększa się, powoduje bardziej ekonomiczne działanie. |
(Obciążenie) Użyj narzędzia VerticalPodAutoscaler (wersja zapoznawcza), aby ustawić rozmiar zasobników i dynamicznie ustawiać żądania i limity na podstawie historycznego użycia. | Ustawiając żądania zasobów i limity dla kontenerów dla każdego obciążenia, VerticalPodAutoscaler zwalnia procesor i pamięć dla innych zasobników i pomaga zapewnić efektywne wykorzystanie klastrów usługi AKS. |
(Klaster) Skonfiguruj dodatek analizy kosztów AKS. | Rozszerzenie klastra analizy kosztów umożliwia uzyskanie szczegółowego wglądu w koszty skojarzone z różnymi zasobami Kubernetes w klastrach lub przestrzeniach nazw. |
Doskonałość operacyjna
Doskonałość operacyjna koncentruje się głównie na procedurach dotyczących praktyk programistycznych , utrzymania obserwowalności oraz zarządzania wydaniami.
Zasady projektowania doskonałości operacyjnej zapewniają ogólną strategię projektowania w celu osiągnięcia tych celów, uwzględniając wymagania operacyjne pracy.
Lista kontrolna projektu
Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu dla doskonałości operacyjnej w celu zdefiniowania procesów do obserwowania, testowania i wdrażania. Zobacz najlepsze praktyki dla AKS oraz przewodnik operacji drugiego dnia, aby dowiedzieć się więcej o kluczowych zagadnieniach związanych ze zrozumieniem i wdrożeniem.
(Klaster) Zaimplementuj podejście wdrażania infrastruktury jako kodu (IaC). Użyj deklaratywnego podejścia do wdrażania opartego na szablonach przy użyciu narzędzi Bicep, Terraform lub podobnych. Upewnij się, że wszystkie wdrożenia są powtarzalne, możliwe do śledzenia i przechowywane w repozytorium kodu źródłowego. Aby uzyskać więcej informacji, zobacz szybki start w dokumentacji produktu AKS.
(Klaster i obciążenie) Automatyzowanie wdrożeń infrastruktury i obciążeń. Standardowe rozwiązania programowe umożliwiają zarządzanie, integrowanie i automatyzowanie wdrażania klastra i obciążeń. Integrowanie potoków wdrażania z systemem kontroli źródła i dołączanie testów automatycznych.
Utwórz zautomatyzowany proces, aby upewnić się, że klastry są uruchamiane przy użyciu niezbędnych konfiguracji i wdrożeń w całym klastrze. Ten proces jest zwykle wykonywany przy użyciu metodyki GitOps.
Użyj powtarzalnych i zautomatyzowanych procesów wdrażania dla swoich zasobów w ramach cyklu życia tworzenia oprogramowania.
(Klaster i obciążenie) Zaimplementuj kompleksową strategię monitorowania. Zbierz dzienniki i metryki, aby monitorować kondycję obciążenia, identyfikować trendy wydajności i niezawodności oraz rozwiązywać problemy. Zapoznaj się z najlepszymi rozwiązaniami dotyczącymi monitorowania platformy Kubernetes za pomocą usługi Azure Monitor oraz zaleceniami Well-Architected dotyczącymi projektowania i tworzenia systemu monitorowania, aby określić najlepszą strategię monitorowania obciążeń.
Włącz ustawienia diagnostyczne, aby upewnić się, że interakcja z płaszczyzną sterowania lub podstawowym serwerem interfejsu API jest rejestrowana.
Obciążenie powinno być zaprojektowane tak, aby emitować dane telemetryczne, które można zbierać, i powinny także zawierać informacje o gotowości i sprawności działania.
(Klaster i obciążenie) Implementowanie testowania w strategiach produkcyjnych. Testowanie w środowisku produkcyjnym używa rzeczywistych wdrożeń do weryfikowania i mierzenia zachowania i wydajności aplikacji w środowisku produkcyjnym. Skorzystaj z praktyk inżynierii chaosu, które dotyczą platformy Kubernetes, aby zidentyfikować problemy z niezawodnością aplikacji lub platformy.
Usługa Azure Chaos Studio może pomóc symulować błędy i wyzwalać sytuacje odzyskiwania po awarii.
(Klaster i obciążenie) Zarządzanie obciążeniami. Usługa Azure Policy pomaga zapewnić spójność ze standardami organizacyjnymi, automatyzuje egzekwowanie zasad i zapewnia scentralizowaną widoczność oraz kontrolę nad zasobami klastra.
Zapoznaj się z sekcją Zasady platformy Azure , aby dowiedzieć się więcej na temat dostępnych wbudowanych zasad dla usługi AKS.
(Klaster i obciążenie) Używaj niebiesko-zielonych wdrożeń na poziomie sygnatury dla obciążeń o krytycznym znaczeniu. Podejście do niebiesko-zielonych wdrożeń na poziomie sygnatury może zwiększyć zaufanie do wprowadzania zmian i umożliwia aktualizacje bez przestojów, ponieważ można zweryfikować zgodność z zależnościami podrzędnymi, takimi jak platforma Azure, dostawcy zasobów i moduły IaC.
Kontrolery Kubernetes i kontrolery wejściowe obsługują wiele zaawansowanych wzorców wdrażania, które można uwzględnić w procesie zarządzania wydaniami. Rozważ wzorce, takie jak wdrożenia niebiesko-zielone lub wydania kanarkowe.
(Klaster i obciążenie) Zwiększaj trwałość obciążeń. Zwiększenie zrównoważonego obciążenia i efektywnego działania w chmurze wymaga połączenia wysiłków związanych z optymalizacją kosztów, zmniejszeniem emisji dwutlenku węgla i optymalizacją zużycia energii. Optymalizacja kosztów aplikacji jest pierwszym krokiem w tworzeniu bardziej zrównoważonych obciążeń.
Zobacz Zrównoważone zasady inżynierii oprogramowania w AKS, aby dowiedzieć się, jak tworzyć zrównoważone i wydajne obciążenia w AKS.
Zalecenia
Zalecenie | Korzyści |
---|---|
(Klaster) Wdrożenie standardów konfiguracji klastra i podu przy użyciu zasad Azure dla AKS. | Zasady platformy Azure dla usługi AKS mogą pomóc w zastosowaniu wymuszania na dużą skalę i zabezpieczeń w klastrach w sposób scentralizowany i spójny. Użyj zasad dotyczących uprawnień, aby zdefiniować uprawnienia przyznane zasobnikom i zapewnić zgodność z zasadami firmy. |
(Obciążenie) Użyj narzędzia Kubernetes Event Driven Autoscaler (KEDA). | Usługa KEDA umożliwia aplikacjom skalowanie na podstawie zdarzeń, takich jak liczba przetwarzanych zdarzeń. Możesz wybrać spośród bogatego katalogu ponad 50 skalarów KEDA. |
Efektywność operacyjna
Wydajność operacyjna polega na utrzymaniu doświadczenia użytkownika nawet w przypadku wzrostu obciążenia poprzez zarządzanie wydajnością. Strategia obejmuje skalowanie zasobów, identyfikowanie i optymalizowanie potencjalnych wąskich gardeł oraz optymalizowanie pod kątem szczytowej wydajności.
Zasady projektowania efektywności zapewniają strategię projektowania na wysokim poziomie w celu osiągnięcia tych celów związanych z przepustowością w kontekście oczekiwanego wykorzystania.
Lista kontrolna projektu
Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu wydajności w celu zdefiniowania punktu odniesienia na podstawie kluczowych wskaźników wydajności usługi AKS.
(Klaster i obciążenie) Przeprowadź planowanie pojemności. Przeprowadź i iteruj szczegółowe ćwiczenie z zakresu planowania pojemności, które obejmuje jednostki SKU, ustawienia automatycznego skalowania, adresację IP oraz aspekty dotyczące trybu awaryjnego.
Po ustanowieniu planu pojemności, często aktualizuj plan poprzez ciągłe monitorowanie wykorzystania zasobów klastrowych.
(Klaster) Zdefiniuj strategię skalowania. Skonfiguruj skalowanie w celu zapewnienia efektywnego dostosowania zasobów w celu spełnienia wymagań związanych z obciążeniami bez nadmiernego użycia lub strat. Użyj funkcji AKS, takich jak automatyczne skalowanie klastra i HorizontalPodAutoscaler, aby dynamicznie zaspokajać potrzeby obciążeń, zmniejszając obciążenie operacyjne. Zoptymalizuj obciążenie pod kątem wydajnego działania i wdrażania w kontenerze.
Zapoznaj się z przewodnikiem Skalowanie i partycjonowanie , aby zrozumieć różne aspekty konfiguracji skalowania.
(Klaster i obciążenie) Przeprowadź testy wydajnościowe. Wykonuj bieżące działania testowania obciążenia, które obejmują zarówno zasobnik, jak i narzędzie do automatycznego skalowania klastra. Porównaj wyniki z celami wydajności i ustalonymi punktami odniesienia.
(Klaster i obciążenie) Skalowanie obciążeń i przepływów niezależnie. Rozdziel obciążenia i przepływy do różnych pul węzłów, aby umożliwić niezależne skalowanie. Postępuj zgodnie ze wskazówkami w temacie Optymalizowanie projektowania obciążenia przy użyciu przepływów w celu identyfikowania i określania priorytetów przepływów.
Zalecenia
Zalecenie | Korzyści |
---|---|
(Klaster) Włącz automatyczne skalowanie klastra , aby automatycznie dostosować liczbę węzłów agenta w odpowiedzi na wymagania dotyczące obciążeń. Użyj narzędzia HorizontalPodAutoscaler , aby dostosować liczbę zasobników we wdrożeniu w zależności od użycia procesora CPU lub innych metryk. |
Możliwość automatycznego skalowania w górę i w dół liczby węzłów oraz liczby podów w klastrze usługi AKS umożliwia uruchamianie wydajnego, ekonomicznego klastra. |
(Klaster i obciążenie) Rozdziel obciążenia na różne pule węzłów i rozważ skalowanie puli węzłów użytkownika. | W przeciwieństwie do pul węzłów systemowych, które zawsze wymagają uruchomionych węzłów, pule węzłów użytkownika umożliwiają skalowanie w górę lub w dół. |
(Obciążenie) Użyj zaawansowanych funkcji harmonogramu usługi AKS, aby zaimplementować zaawansowane równoważenie zasobów dla obciążeń, które ich wymagają. | Podczas zarządzania klastrami AKS często trzeba izolować zespoły i obciążenia. Zaawansowane funkcje, które zapewnia harmonogram Kubernetes, umożliwiają kontrolowanie, które zasobniki można zaplanować w niektórych węzłach. Umożliwiają one również kontrolowanie sposobu, w jaki aplikacje wielopodowe mogą być odpowiednio dystrybuowane w klastrze. |
(Obciążenie) Użyj KEDA , aby utworzyć znaczący zestaw reguł skalowania automatycznego na podstawie sygnałów specyficznych dla obciążenia. | Nie wszystkie decyzje dotyczące skalowania mogą pochodzić z metryk procesora CPU lub pamięci. Zagadnienia dotyczące skalowania często pochodzą z bardziej złożonych lub nawet zewnętrznych punktów danych. Usługa KEDA umożliwia aplikacjom skalowanie na podstawie zdarzeń, takich jak liczba komunikatów w kolejce lub długość opóźnienia tematu. |
Zasady platformy Azure
Platforma Azure udostępnia obszerny zestaw wbudowanych zasad związanych z usługą AKS, które dotyczą zasobu platformy Azure, takich jak typowe zasady platformy Azure i dodatek usługi Azure Policy dla platformy Kubernetes i w klastrze. Wiele zasad zasobów platformy Azure jest dostępnych zarówno w wariantach Audit/Deny , jak i Deploy If Not Exists . Oprócz wbudowanych definicji usługi Azure Policy można tworzyć niestandardowe zasady zarówno dla zasobu usługi AKS, jak i dodatku usługi Azure Policy dla platformy Kubernetes.
Niektóre zalecenia w tym artykule można audytować za pomocą usługi Azure Policy. Możesz na przykład sprawdzić następujące zasady klastra:
- Klastry mają skonfigurowane kontrole zdrowia gotowości lub żywotności w specyfikacji zasobnika.
- Usługa Microsoft Defender dla zasad opartych na chmurze.
- Tryb uwierzytelniania i zasady konfiguracji, takie jak Microsoft Entra ID, RBAC i wyłącz uwierzytelnianie lokalne.
- Zasady dostępu do sieci serwera interfejsu API, w tym klaster prywatny.
- Zasady konfiguracji usługi GitOps.
- Zasady ustawień diagnostycznych.
- Ograniczenia wersji usługi AKS.
- Zapobiegaj wywołaniu polecenia.
Możesz również sprawdzić następujące zasady klastra i obciążenia:
- Inicjatywy zabezpieczeń zasobników klastra Kubernetes dla obciążeń opartych na systemie Linux.
- Uwzględnij polityki możliwości zasobnika i kontenera, takie jak AppArmor, sysctl, polityki zabezpieczeń, SELinux, seccomp, uprzywilejowane kontenery i poświadczenia interfejsu API automatycznego montowania klastra.
- Montowanie, sterowniki woluminów i polityki systemu plików.
- Zasady sieciowe zasobników i kontenerów, takie jak sieć hosta, port, dozwolone zewnętrzne adresy IP, adresy HTTPs i wewnętrzne moduły równoważenia obciążenia.
- Ograniczenia wdrażania przestrzeni nazw.
- Limity zasobów procesora CPU i pamięci.
Aby uzyskać kompleksowy ład, zapoznaj się z wbudowanymi definicjami usługi Azure Policy dla platformy Kubernetes i innymi zasadami, które mogą mieć wpływ na bezpieczeństwo warstwy obliczeniowej.
Rekomendacje usługi Azure Advisor
Azure Advisor to spersonalizowany konsultant ds. chmury, który pomaga stosować najlepsze rozwiązania w celu zoptymalizowania wdrożeń platformy Azure. Poniżej przedstawiono kilka zaleceń, które mogą pomóc zwiększyć niezawodność, bezpieczeństwo, efektywność kosztową, wydajność i doskonałość operacyjną usługi AKS.
Powiązana zawartość
Rozważ następujące artykuły jako zasoby, które przedstawiają zalecenia wyróżnione w tym artykule.
- Bazowa architektura AKS
- Zaawansowana architektura mikrousług AKS
- Klaster AKS dla obciążenia PCI-DSS
- Punkt odniesienia usługi AKS dla klastrów wieloregionowych
- Akcelerator strefy docelowej AKS
Utwórz wiedzę na temat implementacji, korzystając z następującej dokumentacji produktu: