Udostępnij za pośrednictwem


Przegląd platformy Azure Well-Architected Framework — Azure Kubernetes Service (AKS)

Ten artykuł zawiera najlepsze rozwiązania dotyczące architektury dla usługi Azure Kubernetes Service (AKS). Wskazówki są oparte na pięciu filarach doskonałości architektury:

  • Niezawodność
  • Zabezpieczenia
  • Optymalizacja kosztów
  • Doskonałość operacyjna
  • Efektywność wydajności

Zakładamy, że rozumiesz zasady projektowania systemu, masz działającą wiedzę na temat usługi Azure Kubernetes Service i dobrze znasz jej funkcje. Aby uzyskać więcej informacji, zobacz Azure Kubernetes Service.

Wymagania wstępne

Zrozumienie filarów dobrze zaprojektowanej struktury może pomóc w utworzeniu wysokiej jakości, stabilnej i wydajnej architektury chmury. Zalecamy zapoznanie się z obciążeniem przy użyciu oceny przeglądu platformy Azure Well-Architected Framework.

W kontekście rozważ przejrzenie architektury referencyjnej, która odzwierciedla te zagadnienia w projekcie. Zalecamy rozpoczęcie od architektury bazowej dla klastra usługi Azure Kubernetes Service (AKS) i architektury mikrousług w usłudze Azure Kubernetes Service. Zapoznaj się również z akceleratorem strefy docelowej usługi AKS, który zapewnia podejście architektoniczne i implementację referencyjną w celu przygotowania subskrypcji strefy docelowej do skalowalnego klastra usługi Azure Kubernetes Service (AKS).

Niezawodność

W chmurze potwierdzamy, że występują błędy. Zamiast próbować całkowicie zapobiegać awariom, celem jest minimalizacja wpływu awarii pojedynczego składnika. Skorzystaj z poniższych informacji, aby zminimalizować wystąpienia, które zakończyły się niepowodzeniem.

Podczas omawiania niezawodności w usłudze Azure Kubernetes Service ważne jest rozróżnienie między niezawodnością klastra a niezawodnością obciążenia. Niezawodność klastra jest wspólną odpowiedzialnością administratora klastra i dostawcy zasobów, podczas gdy niezawodność obciążenia jest domeną dewelopera. Usługa Azure Kubernetes Service ma uwagi i zalecenia dotyczące obu tych ról.

Na poniższej liście kontrolnej i liście zaleceń projektowych objaśnienia wskazują, czy każdy wybór ma zastosowanie do architektury klastra, architektury obciążenia, czy obu tych opcji.

Lista kontrolna projektu

  • Architektura klastra: w przypadku obciążeń krytycznych użyj stref dostępności dla klastrów usługi AKS.
  • Architektura klastra: zaplanuj przestrzeń adresów IP, aby zapewnić niezawodne skalowanie klastra, w tym obsługę ruchu w trybie failover w topologii wielu klastrów.
  • Architektura klastra: Zapoznaj się z najlepszymi rozwiązaniami dotyczącymi monitorowania platformy Kubernetes za pomocą usługi Azure Monitor , aby określić najlepszą strategię monitorowania obciążeń.
  • Architektura obciążenia: upewnij się, że obciążenia są tworzone w celu obsługi skalowania w poziomie i gotowości aplikacji raportów oraz kondycji.
  • Architektury klastrów i obciążeń: upewnij się, że obciążenie jest uruchomione w pulach węzłów użytkownika i wybierz odpowiednią jednostkę SKU o odpowiednim rozmiarze. 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.
  • Architektura klastra: użyj umowy SLA czasu działania usługi AKS, aby spełnić cele dostępności dla obciążeń produkcyjnych.

Zalecenia dotyczące konfiguracji usługi AKS

Zapoznaj się z poniższą tabelą zaleceń, aby zoptymalizować konfigurację usługi AKS pod kątem niezawodności.

Zalecenie Korzyści
Architektury klastrów i obciążeń: kontrolowanie planowania zasobników przy użyciu selektorów węzłów i koligacji. Umożliwia harmonogramowi Kubernetes logiczne izolowanie obciążeń przez sprzęt w węźle. W przeciwieństwie do tolerancji zasobniki bez pasującego selektora węzłów można zaplanować w węzłach oznaczonych etykietami, co umożliwia używanie nieużywanych zasobów w węzłach, ale daje priorytet zasobnikom definiującym pasujący selektor węzłów. Użyj koligacji węzła, aby uzyskać większą elastyczność, co pozwala zdefiniować, co się stanie, jeśli zasobnik nie może być dopasowany do węzła.
Architektura klastra: upewnij się, że wybrano odpowiednią opcję wtyczki sieciowej na podstawie wymagań sieciowych i rozmiaru klastra. Usługa Azure CNI jest wymagana dla określonych scenariuszy, na przykład pul węzłów opartych na systemie Windows, określonych wymagań sieciowych i zasad sieciowych platformy Kubernetes. Aby uzyskać więcej informacji, zobacz Kubenet i Azure CNI .
Architektury klastrów i obciążeń: użyj umowy SLA czasu działania usługi AKS dla klastrów klasy produkcyjnej. Umowa SLA dotycząca czasu pracy w usłudze AKS gwarantuje:
- 99.95%dostępność punktu końcowego serwera interfejsu API Kubernetes dla klastrów usługi AKS korzystających z usługi Azure Strefy dostępności lub
- 99.9%dostępność klastrów usługi AKS, które nie korzystają z usługi Azure Strefy dostępności.
Architektury klastrów i obciążeń: zapoznaj się z najlepszymi rozwiązaniami dotyczącymi monitorowania platformy Kubernetes za pomocą usługi Azure Monitor , aby określić najlepszą strategię monitorowania obciążeń. Nie dotyczy
Architektura klastra: strefy dostępności umożliwiają zmaksymalizowanie odporności w regionie świadczenia usługi Azure przez dystrybucję węzłów agenta usługi AKS w fizycznie oddzielnych centrach danych. Rozkładając pule węzłów w wielu strefach, węzły w jednej puli węzłów będą nadal działać, nawet jeśli inna strefa nie działa. Jeśli istnieją wymagania dotyczące współlokalności, można użyć zwykłego wdrożenia usługi AKS opartego na usłudze AKS w jednej strefie lub grup umieszczania w pobliżu w celu zminimalizowania opóźnienia między węzłami.
Architektura klastra: wdrożenie strategii wieloregionowej przez wdrożenie klastrów usługi AKS wdrożonych w różnych regionach świadczenia usługi Azure w celu zmaksymalizowania dostępności i zapewnienia ciągłości działania. Obciążenia połączone z Internetem powinny wykorzystywać usługę Azure Front Door lub Azure Traffic Manager do kierowania ruchu globalnie między klastrami usługi AKS.
Architektury klastrów i obciążeń: zdefiniuj żądania zasobów zasobnika i limity w manifestach wdrażania aplikacji i wymuś je za pomocą usługi Azure Policy. Limity zasobów procesora CPU i pamięci kontenera są niezbędne, aby zapobiec wyczerpaniu zasobów w klastrze Kubernetes.
Architektury klastrów i obciążeń: zachowaj pulę węzłów systemowych odizolowaną od obciążeń aplikacji. Pule węzłów systemowych wymagają jednostki SKU maszyny wirtualnej co najmniej 2 procesorów wirtualnych i 4 GB pamięci, ale zalecane jest użycie co najmniej 4 procesorów wirtualnych. Aby uzyskać szczegółowe wymagania, zobacz Pule węzłów systemu i użytkownika.
Architektury klastrów i obciążeń: oddzielaj aplikacje od dedykowanych pul węzłów na podstawie określonych wymagań. Aplikacje mogą współużytkować tę samą konfigurację i wymagać maszyn wirtualnych z obsługą procesora GPU, procesorów CPU lub pamięci zoptymalizowanych pod kątem pamięci lub możliwości skalowania do zera. Unikaj dużej liczby pul węzłów, aby zmniejszyć dodatkowe obciążenie związane z zarządzaniem.
Architektura klastra: użyj bramy translatora adresów sieciowych dla klastrów, które uruchamiają obciążenia, które tworzą wiele współbieżnych połączeń wychodzących. Aby uniknąć problemów z niezawodnością związanych z ograniczeniami usługi Azure Load Balancer w przypadku dużego współbieżnego ruchu wychodzącego, brama TRANSLATORa adresów sieciowych obsługuje niezawodny ruch wychodzący na dużą skalę.

Aby uzyskać więcej sugestii, zobacz Zasady filaru niezawodności.

Azure Policy

Usługa Azure Kubernetes Service oferuje szeroką gamę wbudowanych zasad platformy Azure, które mają zastosowanie zarówno do zasobu platformy Azure, jak typowe zasady platformy Azure, jak i przy użyciu dodatku usługi Azure Policy dla platformy Kubernetes, również w klastrze. Istnieje wiele kluczowych zasad związanych z tym filarem, które zostały tutaj podsumowane. Aby uzyskać bardziej szczegółowy widok, zobacz wbudowane definicje zasad dla platformy Kubernetes.

Architektura klastra i obciążenia

Oprócz wbudowanych definicji usługi Azure Policy można tworzyć zasady niestandardowe zarówno dla zasobu usługi AKS, jak i dodatku usługi Azure Policy dla platformy Kubernetes. Dzięki temu można dodać dodatkowe ograniczenia niezawodności, które chcesz wymusić w architekturze klastra i obciążenia.

Zabezpieczenia

Bezpieczeństwo to jeden z najważniejszych aspektów każdej architektury. Aby dowiedzieć się, jak usługa AKS może wzmocnić bezpieczeństwo obciążenia aplikacji, zalecamy zapoznanie się z zasadami projektowania zabezpieczeń. Jeśli klaster usługi Azure Kubernetes Service musi być zaprojektowany w celu uruchomienia wrażliwego obciążenia spełniającego wymagania prawne standardu PCI-DSS 3.2.1 (Payment Card Industry Data Security Standard) (PCI-DSS 3.2.1), zapoznaj się z klastrem regulowanym AKS dla standardu PCI-DSS 3.2.1.

Aby dowiedzieć się więcej o obsłudze i wymaganiach dotyczących poziomu doD Impact Level 5 (IL5) w usłudze AKS, zapoznaj się z wymaganiami dotyczącymi izolacji w usłudze Azure Government IL5.

Podczas omawiania zabezpieczeń w usłudze Azure Kubernetes Service ważne jest rozróżnienie między zabezpieczeniami klastra i zabezpieczeniami obciążeń. Zabezpieczenia klastra są współdzieloną odpowiedzialnością między administratorem klastra a dostawcą zasobów, podczas gdy zabezpieczenia obciążenia są domeną dewelopera. Usługa Azure Kubernetes Service ma uwagi i zalecenia dotyczące obu tych ról.

Na poniższej liście kontrolnej i liście zaleceń projektowych objaśnienia wskazują, czy każdy wybór ma zastosowanie do architektury klastra, architektury obciążenia, czy obu tych elementów.

Lista kontrolna projektu

  • Architektura klastra: użyj tożsamości zarządzanych , aby uniknąć zarządzania i rotacji zasad usługi.
  • Architektura klastra: użyj kontroli dostępu opartej na rolach (RBAC) platformy Kubernetes z identyfikatorem Entra firmy Microsoft, aby uzyskać dostęp z najmniejszymi uprawnieniami i zminimalizować przyznawanie uprawnień administratora w celu ochrony konfiguracji i dostępu do wpisów tajnych.
  • Architektura klastra: usługa Microsoft Defender dla kontenerów z usługą Azure Sentinel umożliwia wykrywanie i szybkie reagowanie na zagrożenia w klastrze i obciążeniach uruchomionych na nich.
  • Architektura klastra: wdróż prywatny klaster usługi AKS, aby zapewnić, że ruch zarządzania klastrem na serwerze interfejsu API pozostanie w sieci prywatnej. Możesz też użyć listy dozwolonych serwerów interfejsu API dla klastrów innych niż prywatne.
  • Architektura obciążenia: użyj zapory aplikacji internetowej, aby zabezpieczyć ruch HTTP(S).
  • Architektura obciążenia: Upewnij się, że potok ciągłej integracji/ciągłej integracji jest wzmocniony dzięki skanowaniu obsługującym kontenery.

Zalecenia

Zapoznaj się z poniższą tabelą zaleceń, aby zoptymalizować konfigurację usługi AKS pod kątem zabezpieczeń.

Zalecenie Korzyści
Architektura klastra: użyj integracji z firmą Microsoft Entra. Korzystanie z identyfikatora Entra firmy Microsoft umożliwia scentralizowanie składnika zarządzania tożsamościami. Każda zmiana stanu konta użytkownika lub grupy jest automatycznie aktualizowana w dostępie do klastra usługi AKS. Deweloperzy i właściciele aplikacji klastra Kubernetes muszą mieć dostęp do różnych zasobów.
Architektura klastra: uwierzytelnij się przy użyciu identyfikatora Entra firmy Microsoft w usłudze Azure Container Registry. Usługi AKS i Microsoft Entra ID umożliwiają uwierzytelnianie w usłudze Azure Container Registry bez używania wpisów tajnych imagePullSecrets . Aby uzyskać więcej informacji, zobacz Uwierzytelnianie za pomocą usługi Azure Container Registry z usługi Azure Kubernetes Service .
Architektura klastra: zabezpieczanie ruchu sieciowego na serwerze interfejsu API za pomocą prywatnego klastra usługi AKS. Domyślnie ruch sieciowy między pulami węzłów a serwerem interfejsu API kieruje siecią szkieletową firmy Microsoft; przy użyciu klastra prywatnego można zapewnić, że ruch sieciowy do serwera interfejsu API pozostanie tylko w sieci prywatnej.
Architektura klastra: w przypadku klastrów innych niż prywatne usługi AKS użyj autoryzowanych zakresów adresów IP serwera interfejsu API. W przypadku korzystania z klastrów publicznych nadal można ograniczyć ruch, który może dotrzeć do serwera interfejsu API klastrów przy użyciu funkcji autoryzowanego zakresu adresów IP. 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 (na przykład usługa Azure Firewall).
Architektura klastra: ochrona serwera interfejsu API za pomocą kontroli dostępu opartej na rolach firmy Microsoft. Zabezpieczanie dostępu do serwera interfejsu API Kubernetes jest jedną z najważniejszych czynności, które można wykonać w celu zabezpieczenia klastra. Zintegruj kontrolę dostępu opartą na rolach (RBAC) platformy Kubernetes z identyfikatorem Entra firmy Microsoft, aby kontrolować dostęp do serwera interfejsu API. Wyłącz konta lokalne, aby wymusić cały dostęp do klastra przy użyciu tożsamości opartych na identyfikatorach firmy Microsoft.
Architektura klastra: użyj zasad sieciowych platformy Azure lub Calico. Zabezpieczanie i kontrolowanie ruchu sieciowego między zasobnikami w klastrze.
Architektura klastra: zabezpieczanie klastrów i zasobników za pomocą 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 funkcji są przyznawane i jeśli coś działa względem zasad firmy.
Architektura klastra: Zabezpieczanie dostępu kontenera do zasobów. Ogranicz dostęp do akcji, które mogą wykonywać kontenery. Podaj najmniejszą liczbę uprawnień i unikaj używania eskalacji katalogu głównego lub uprzywilejowanego.
Architektura obciążenia: użyj zapory aplikacji internetowej, aby zabezpieczyć ruch HTTP(S). Aby skanować ruch przychodzący pod kątem potencjalnych ataków, użyj zapory aplikacji internetowej, takiej jak zapora aplikacji internetowej platformy Azure w usłudze aplikacja systemu Azure Gateway lub Azure Front Door.
Architektura klastra: kontrolowanie ruchu wychodzącego klastra. Upewnij się, że ruch wychodzący klastra przechodzi przez punkt zabezpieczeń sieci, taki jak usługa Azure Firewall lub serwer proxy HTTP.
Architektura klastra: użyj sterownika CSI magazynu CSI Tożsamość obciążeń Microsoft Entra typu open source i magazynu wpisów tajnych w usłudze Azure Key Vault. Chroń i obracaj wpisy tajne, certyfikaty i parametry połączenia w usłudze Azure Key Vault przy użyciu silnego szyfrowania. Udostępnia dziennik inspekcji dostępu i przechowuje podstawowe wpisy tajne z potoku wdrażania.
Architektura klastra: użyj usługi Microsoft Defender for Containers. Monitorowanie i utrzymywanie zabezpieczeń klastrów, kontenerów i aplikacji.

Aby uzyskać więcej sugestii, zobacz Zasady filaru zabezpieczeń.

Usługa Azure Advisor pomaga zapewnić i ulepszyć usługę Azure Kubernetes. Udostępnia zalecenia dotyczące podzestawu elementów wymienionych w poniższej sekcji zasad, takich jak klastry bez skonfigurowanej kontroli dostępu opartej na rolach, brak konfiguracji usługi Microsoft Defender, nieograniczony dostęp sieciowy do serwera interfejsu API. Podobnie sprawia, że zalecenia dotyczące obciążeń dla niektórych elementów inicjatywy zabezpieczeń zasobnika. Przejrzyj zalecenia.

Definicje zasad

Usługa Azure Policy oferuje różne wbudowane definicje zasad, które mają zastosowanie zarówno do zasobu platformy Azure, jak i usługi AKS, takich jak standardowe definicje zasad, oraz korzystanie z dodatku Usługi Azure Policy dla platformy Kubernetes również w klastrze. Wiele zasad zasobów platformy Azure jest dostępnych zarówno w wersji Audit/Deny, jak i w wariancie Wdróż, jeśli nie istnieje .

Istnieje wiele kluczowych zasad związanych z tym filarem, które zostały tutaj podsumowane. Aby uzyskać bardziej szczegółowy widok, zobacz wbudowane definicje zasad dla platformy Kubernetes.

Architektura klastra

  • zasady oparte na Microsoft Defender dla Chmury
  • Tryb uwierzytelniania i zasady konfiguracji (Microsoft Entra ID, RBAC, wyłącz uwierzytelnianie lokalne)
  • Zasady dostępu do sieci serwera API Server, w tym klaster prywatny

Architektura klastra i obciążenia

  • Inicjatywy zabezpieczeń zasobników klastra Kubernetes oparte na systemie Linux
  • Uwzględnij zasady możliwości zasobnika i kontenera, takie jak AppArmor, sysctl, caps zabezpieczeń, SELinux, seccomp, privileged containers, automount cluster API credentials
  • Instalowanie, sterowniki woluminów i zasady systemu plików
  • Zasady sieciowe zasobnika/kontenera, takie jak sieć hosta, port, dozwolone zewnętrzne adresy IP, protokoły HTTPs i wewnętrzne moduły równoważenia obciążenia

Wdrożenia usługi Azure Kubernetes Service często używają usługi Azure Container Registry dla wykresów helm i obrazów kontenerów. Usługa Azure Container Registry obsługuje również szeroką gamę zasad platformy Azure obejmujących ograniczenia sieci, kontrolę dostępu i Microsoft Defender dla Chmury, które uzupełniają bezpieczną architekturę usługi AKS.

Oprócz wbudowanych zasad można tworzyć zasady niestandardowe zarówno dla zasobu usługi AKS, jak i dodatku usługi Azure Policy dla platformy Kubernetes. Dzięki temu można dodać dodatkowe ograniczenia zabezpieczeń, które chcesz wymusić w architekturze klastra i obciążenia.

Aby uzyskać więcej sugestii, zobacz Pojęcia dotyczące zabezpieczeń usługi AKS i oceń nasze zalecenia dotyczące wzmacniania zabezpieczeń na podstawie testu porównawczego CIS Kubernetes.

Optymalizacja kosztów

Optymalizacja kosztów polega na zrozumieniu różnych opcji konfiguracji i zalecanych najlepszych rozwiązań w celu zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Przed wykonaniem wskazówek w tym artykule zalecamy zapoznanie się z następującymi zasobami:

Podczas omawiania optymalizacji kosztów w usłudze Azure Kubernetes Service ważne jest rozróżnienie między kosztami zasobów klastra a kosztami zasobów obciążeń. Zasoby klastra są współdzieloną odpowiedzialnością administratora klastra i dostawcy zasobów, podczas gdy zasoby obciążenia są domeną dewelopera. Usługa Azure Kubernetes Service ma uwagi i zalecenia dotyczące obu tych ról.

Na liście kontrolnej projektu i liście zaleceń objaśnienia są wykonywane w celu wskazania, czy każdy wybór ma zastosowanie do architektury klastra, architektury obciążenia, czy obu tych elementów.

W przypadku optymalizacji kosztów klastra przejdź do kalkulatora cen platformy Azure i wybierz pozycję Azure Kubernetes Service z dostępnych produktów. Różne konfiguracje i plany płatności można przetestować w kalkulatorze.

Lista kontrolna projektu

  • Architektura klastra: użyj odpowiedniej jednostki SKU maszyny wirtualnej na pulę węzłów i wystąpień zarezerwowanych, w których oczekiwana jest długoterminowa pojemność.
  • Architektury klastrów i obciążeń: użyj odpowiedniej warstwy dysku zarządzanego i rozmiaru.
  • Architektura klastra: Przejrzyj 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.
  • Architektura klastra i obciążenia: skalowanie automatyczne umożliwia skalowanie w poziomie, gdy obciążenia są mniej aktywne.

Zalecenia

Zapoznaj się z poniższą tabelą zaleceń, aby zoptymalizować konfigurację usługi AKS pod kątem kosztów.

Zalecenie Korzyści
Architektury klastrów i obciążeń: wyrównywanie wyboru jednostki SKU i rozmiaru dysku zarządzanego z wymaganiami dotyczącymi obciążenia. Dopasowanie wyboru do wymagań dotyczących obciążeń gwarantuje, że nie płacisz za niepotrzebne zasoby.
Architektura klastra: wybierz odpowiedni typ wystąpienia maszyny wirtualnej. Wybranie odpowiedniego typu wystąpienia maszyny wirtualnej ma kluczowe znaczenie, ponieważ ma bezpośredni wpływ na koszt uruchamiania aplikacji w usłudze AKS. Wybranie wystąpienia o wysokiej wydajności bez odpowiedniego wykorzystania może prowadzić do marnego wydatków, a wybranie mniej zaawansowanego wystąpienia może prowadzić do problemów z wydajnością i zwiększonego przestoju. Aby określić właściwy typ wystąpienia maszyny wirtualnej, rozważ charakterystyki obciążenia, wymagania dotyczące zasobów i potrzeby dotyczące dostępności.
Architektura klastra: wybierz maszyny wirtualne na podstawie architektury arm. Usługa AKS obsługuje tworzenie węzłów agenta systemu Ubuntu Arm64, a także połączenie węzłów architektury Intel i ARM w klastrze, które mogą zapewnić lepszą wydajność przy niższych kosztach.
Architektura klastra: wybierz pozycję Maszyny wirtualne typu spot platformy Azure. Maszyny wirtualne typu spot umożliwiają korzystanie z nieużytkowanej pojemności platformy Azure ze znacznymi rabatami (do 90% w porównaniu z cenami 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.
Architektura klastra: wybierz odpowiedni region. Ze względu na wiele czynników koszt zasobów różni się w zależności od regionu na platformie Azure. Oceń wymagania dotyczące kosztów, opóźnień i zgodności, aby upewnić się, że obciążenie jest opłacalne i nie ma wpływu na użytkowników końcowych ani nie tworzy dodatkowych opłat za sieć.
Architektura obciążenia: obsługa małych i zoptymalizowanych obrazów. Usprawnianie obrazów pomaga zmniejszyć koszty, ponieważ nowe węzły muszą pobrać te obrazy. Twórz obrazy w taki sposób, aby umożliwić uruchamianie kontenera tak szybko, jak to możliwe, aby uniknąć niepowodzeń żądań użytkownika lub przekroczenia limitu czasu podczas uruchamiania aplikacji, co potencjalnie prowadzi do nadmiernej aprowizacji.
Architektura klastra: 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 skalowane w górę, gdy zapotrzebowanie zwraca.
Architektura klastra: Włącz automatyczne aprowizowanie węzła w celu zautomatyzowania wyboru jednostki SKU maszyny wirtualnej. Automatyczna aprowizacja węzła upraszcza proces wyboru jednostki SKU i decyduje w oparciu o oczekujące wymagania dotyczące zasobów zasobników optymalną konfigurację maszyny wirtualnej do uruchamiania obciążeń w najbardziej wydajny i ekonomiczny sposób.
Architektura obciążenia: użyj narzędzia Horizontal Pod Autoscaler. Dostosuj liczbę zasobników we wdrożeniu w zależności od użycia procesora CPU lub innych wybranych metryk, które obsługują operacje skalowania w klastrze.
Architektura obciążenia: użyj narzędzia Autoscaler pionowych zasobników (wersja zapoznawcza). Zmieniaj rozmiar zasobników i dynamicznie ustawiaj żądania i limity na podstawie historycznego użycia.
Architektura obciążenia: użyj automatycznego skalowania opartego na zdarzeniach platformy Kubernetes (KEDA). Skalowanie na podstawie liczby przetwarzanych zdarzeń. Wybierz z bogatego katalogu 50+ skalowania KEDA.
Architektury klastrów i obciążeń: zastosuj dyscyplinę finansową w chmurze i praktykę kulturową, aby zwiększyć własność użycia chmury. Podstawą włączania optymalizacji kosztów jest rozłożenie klastra oszczędzającego koszty. Podejście do operacji finansowych (FinOps) jest często używane w celu ułatwienia organizacjom obniżenia kosztów chmury. Jest to praktyka obejmująca współpracę między zespołami finansowymi, operacyjnymi i inżynieryjnymi w celu dostosowania celów oszczędzania kosztów i zapewnienia przejrzystości w kosztach chmury.
Architektura klastra: zarejestruj się w celu uzyskania rezerwacji platformy Azure lub planu oszczędności platformy Azure. Jeśli pojemność jest odpowiednio planowana, obciążenie jest przewidywalne i istnieje przez dłuższy czas, zarejestruj się w celu uzyskania rezerwacji platformy Azure lub planu oszczędnościowego, aby jeszcze bardziej zmniejszyć koszty zasobów.
Architektura klastra: Zapoznaj się z najlepszymi rozwiązaniami dotyczącymi monitorowania platformy Kubernetes za pomocą usługi Azure Monitor , aby określić najlepszą strategię monitorowania obciążeń. Nie dotyczy
Architektura klastra: skonfiguruj dodatek AKS Cost Analysis. Rozszerzenie klastra analizy kosztów umożliwia uzyskanie szczegółowego wglądu w koszty związane z różnymi zasobami Platformy Kubernetes w klastrach lub przestrzeniach nazw.

Aby uzyskać więcej sugestii, zobacz Zasady filaru optymalizacji kosztów i Optymalizacja kosztów w usłudze Azure Kubernetes Service.

Definicje zasad

Chociaż nie ma wbudowanych zasad związanych z optymalizacją kosztów, można tworzyć niestandardowe zasady zarówno dla zasobu usługi AKS, jak i dodatku usługi Azure Policy dla platformy Kubernetes. Umożliwia to dodanie dodatkowych ograniczeń optymalizacji kosztów, które chcesz wymusić w architekturze klastra i obciążenia.

Wydajność chmury

Zwiększenie wydajności obciążeń i chmury 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ń.

Dowiedz się, jak tworzyć zrównoważone i wydajne obciążenia usługi AKS, w temacie Zrównoważone zasady inżynierii oprogramowania w usłudze Azure Kubernetes Service (AKS).

Doskonałość operacyjna

Monitorowanie i diagnostyka są niezwykle istotne. Nie tylko można mierzyć statystyki wydajności, ale także szybko rozwiązywać problemy i rozwiązywać problemy. Zalecamy zapoznanie się z zasadami projektowania doskonałości operacyjnej i przewodnikiem obsługi dzień 2.

Podczas omawiania doskonałości operacyjnej w usłudze Azure Kubernetes Service ważne jest rozróżnienie między doskonałością operacyjną klastra a doskonałością operacyjną obciążeń. Operacje klastra są wspólną odpowiedzialnością administratora klastra i dostawcy zasobów, podczas gdy operacje obciążeń są domeną dewelopera. Usługa Azure Kubernetes Service ma uwagi i zalecenia dotyczące obu tych ról.

Na poniższej liście kontrolnej i liście zaleceń projektowych objaśnienia wskazują, czy każdy wybór ma zastosowanie do architektury klastra, architektury obciążenia, czy obu tych elementów.

Lista kontrolna projektu

  • Architektura klastra: użyj wdrożenia opartego na szablonach przy użyciu narzędzia Bicep, Terraform lub innych. Upewnij się, że wszystkie wdrożenia są powtarzalne, możliwe do śledzenia i przechowywane w repozytorium kodu źródłowego.
  • Architektura klastra: utwórz zautomatyzowany proces, aby upewnić się, że klastry są uruchamiane przy użyciu niezbędnych konfiguracji i wdrożeń w całym klastrze. Jest to często wykonywane przy użyciu metodyki GitOps.
  • Architektura obciążenia: używaj powtarzalnych i zautomatyzowanych procesów wdrażania dla obciążenia w ramach cyklu tworzenia oprogramowania.
  • Architektura klastra: włącz ustawienia diagnostyczne, aby upewnić się, że interakcja z serwerem sterowania lub podstawowym serwerem interfejsu API jest rejestrowana.
  • Architektury klastrów i obciążeń: zapoznaj się z najlepszymi rozwiązaniami dotyczącymi monitorowania platformy Kubernetes za pomocą usługi Azure Monitor , aby określić najlepszą strategię monitorowania obciążeń.
  • Architektura obciążenia: obciążenie powinno być zaprojektowane tak, aby emitować dane telemetryczne, które można zbierać, co powinno również obejmować linie na żywo i stan gotowości.
  • Architektury klastrów i obciążeń: skorzystaj z praktyk inżynierii chaosu, które dotyczą platformy Kubernetes, aby zidentyfikować problemy z niezawodnością aplikacji lub platformy.
  • Architektura obciążenia: zoptymalizuj obciążenie pod kątem wydajnego działania i wdrażania w kontenerze.
  • Architektury klastrów i obciążeń: wymuszanie ładu klastra i obciążenia przy użyciu usługi Azure Policy.

Zalecenia

Zapoznaj się z poniższą tabelą zaleceń, aby zoptymalizować konfigurację usługi AKS pod kątem operacji.

Zalecenie Korzyści
Architektury klastrów i obciążeń: zapoznaj się z dokumentacją najlepszych rozwiązań usługi AKS. Aby pomyślnie kompilować i uruchamiać aplikacje w usłudze AKS, należy wziąć pod uwagę kluczowe zagadnienia dotyczące zrozumienia i wdrożenia. Obszary te obejmują funkcje wielu dzierżaw i harmonogramów, zabezpieczenia klastra i zasobnika albo ciągłość działalności biznesowej i odzyskiwanie po awarii.
Architektury klastrów i obciążeń: Zapoznaj się z usługą Azure Chaos Studio. Usługa Azure Chaos Studio może pomóc symulować błędy i wyzwalać sytuacje odzyskiwania po awarii.
Architektury klastrów i obciążeń: zapoznaj się z najlepszymi rozwiązaniami dotyczącymi monitorowania platformy Kubernetes za pomocą usługi Azure Monitor , aby określić najlepszą strategię monitorowania obciążeń. Nie dotyczy
Architektura klastra: wdrożenie strategii wieloregionowej przez wdrożenie klastrów usługi AKS wdrożonych w różnych regionach świadczenia usługi Azure w celu zmaksymalizowania dostępności i zapewnienia ciągłości działania. Obciążenia połączone z Internetem powinny wykorzystywać usługę Azure Front Door lub Azure Traffic Manager do kierowania ruchu globalnie między klastrami usługi AKS.
Architektura klastra: Operacjonalizacja standardów konfiguracji klastrów i zasobników za pomocą 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 funkcji są przyznawane i jeśli coś działa względem zasad firmy.
Architektura obciążenia: korzystanie z możliwości platformy w procesie inżynierii wydania. Kontrolery Kubernetes i przychodzące obsługują wiele zaawansowanych wzorców wdrażania w celu włączenia ich do procesu inżynieryjnego wydania. Rozważ wzorce, takie jak wdrożenia niebiesko-zielone lub wersje kanary.
Architektury klastrów i obciążeń: w przypadku obciążeń o znaczeniu krytycznym należy używać wdrożeń niebieski/zielonych na poziomie sygnatury. Automatyzowanie obszarów projektowych o krytycznym znaczeniu, w tym wdrażania i testowania.

Aby uzyskać więcej sugestii, zobacz Zasady filaru doskonałości operacyjnej.

Usługa Azure Advisor udostępnia również zalecenia dotyczące podzestawu elementów wymienionych w poniższej sekcji zasad, takich nieobsługiwanych wersji usługi AKS i nieskonfigurowanych ustawień diagnostycznych. Podobnie udostępnia rekomendacje dotyczące obciążenia dotyczące używania domyślnej przestrzeni nazw.

Definicje zasad

Usługa Azure Policy oferuje różne wbudowane definicje zasad, które mają zastosowanie zarówno do zasobu platformy Azure, jak i usługi AKS, takich jak standardowe definicje zasad, oraz korzystanie z dodatku Usługi Azure Policy dla platformy Kubernetes również w klastrze. Wiele zasad zasobów platformy Azure jest dostępnych zarówno w wersji Audit/Deny, jak i w wariancie Wdróż, jeśli nie istnieje .

Istnieje wiele kluczowych zasad związanych z tym filarem, które zostały tutaj podsumowane. Aby uzyskać bardziej szczegółowy widok, zobacz wbudowane definicje zasad dla platformy Kubernetes.

Architektura klastra

  • Dodatek usługi Azure Policy dla platformy Kubernetes
  • Zasady konfiguracji usługi GitOps
  • Zasady ustawień diagnostycznych
  • Ograniczenia wersji usługi AKS
  • Zapobiegaj wywołaniu polecenia

Architektura klastra i obciążenia

  • Ograniczenia wdrażania przestrzeni nazw

Oprócz wbudowanych zasad można tworzyć zasady niestandardowe zarówno dla zasobu usługi AKS, jak i dodatku usługi Azure Policy dla platformy Kubernetes. Dzięki temu można dodać dodatkowe ograniczenia zabezpieczeń, które chcesz wymusić w architekturze klastra i obciążenia.

Efektywność wydajności

Efektywność wydajności to możliwość skalowania obciążenia w celu zaspokojenia zapotrzebowania użytkowników w wydajny sposób. Zalecamy zapoznanie się z zasadami wydajności.

Podczas omawiania wydajności w usłudze Azure Kubernetes Service ważne jest rozróżnienie między wydajnością klastra a wydajnością obciążenia. Wydajność klastra jest wspólną odpowiedzialnością między administratorem klastra a dostawcą zasobów, podczas gdy wydajność obciążenia jest domeną dewelopera. Usługa Azure Kubernetes Service ma uwagi i zalecenia dotyczące obu tych ról.

Na poniższej liście kontrolnej i liście zaleceń projektowych objaśnienia wskazują, czy każdy wybór ma zastosowanie do architektury klastra, architektury obciążenia, czy obu tych elementów.

Lista kontrolna projektu

Podczas podejmowania wyborów projektowych dla usługi Azure Kubernetes Service zapoznaj się z zasadami wydajności.

  • Architektury klastrów i obciążeń: wykonaj i iteruj szczegółowe ćwiczenie dotyczące planu pojemności, które obejmuje jednostki SKU, ustawienia skalowania automatycznego, adresowanie IP i zagadnienia dotyczące trybu failover.
  • Architektura klastra: włącz automatyczne skalowanie klastra, aby automatycznie dostosować liczbę węzłów agenta w zależności od zapotrzebowania na obciążenia.
  • Architektura klastra: użyj narzędzia do automatycznego skalowania zasobników w poziomie, aby dostosować liczbę zasobników we wdrożeniu w zależności od użycia procesora CPU lub innych wybranych metryk.
  • Architektury klastrów i obciążeń: wykonywanie bieżących działań związanych z testowaniem obciążenia, które wykonują zarówno automatyczne skalowanie zasobnika, jak i klastra.
  • Architektury klastrów i obciążeń: rozdziel obciążenia na różne pule węzłów, co umożliwia niezależne skalowanie.

Zalecenia

Zapoznaj się z poniższą tabelą zaleceń, aby zoptymalizować konfigurację usługi Azure Kubernetes Service pod kątem wydajności.

Zalecenie Korzyści
Architektury klastrów i obciążeń: opracowywanie szczegółowego planu pojemności i ciągłe przeglądanie i poprawianie. Po sformalizowaniu planu pojemności powinno ono być często aktualizowane przez ciągłe obserwowanie wykorzystania zasobów klastra.
Architektura klastra: włącz automatyczne skalowanie klastra, aby automatycznie dostosować liczbę węzłów agenta w odpowiedzi na ograniczenia zasobów. Możliwość automatycznego skalowania w górę lub w dół liczby węzłów w klastrze usługi AKS umożliwia uruchamianie wydajnego, ekonomicznego klastra.
Architektury klastrów i obciążeń: rozdziel obciążenia na różne pule węzłów i rozważ skalowanie pul 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ół.
Architektura obciążenia: korzystanie z zaawansowanych funkcji harmonogramu usługi AKS. Pomaga kontrolować równoważenie zasobów dla obciążeń, które ich wymagają.
Architektura obciążenia: użyj znaczących metryk skalowania obciążenia. Nie wszystkie decyzje dotyczące skalowania mogą pochodzić z metryk procesora CPU lub pamięci. Często zagadnienia dotyczące skalowania pochodzą z bardziej złożonych lub nawet zewnętrznych punktów danych. Użyj KEDA , aby utworzyć znaczący zestaw reguł skalowania automatycznego na podstawie sygnałów specyficznych dla obciążenia.

Aby uzyskać więcej sugestii, zobacz Zasady filaru wydajności.

Definicje zasad

Usługa Azure Policy oferuje różne wbudowane definicje zasad, które mają zastosowanie zarówno do zasobu platformy Azure, jak i usługi AKS, takich jak standardowe definicje zasad, oraz korzystanie z dodatku Usługi Azure Policy dla platformy Kubernetes również w klastrze. Wiele zasad zasobów platformy Azure jest dostępnych zarówno w wersji Audit/Deny, jak i w wariancie Wdróż, jeśli nie istnieje .

Istnieje wiele kluczowych zasad związanych z tym filarem, które zostały tutaj podsumowane. Aby uzyskać bardziej szczegółowy widok, zobacz wbudowane definicje zasad dla platformy Kubernetes.

Architektura klastra i obciążenia

  • Limity zasobów procesora CPU i pamięci

Oprócz wbudowanych zasad można tworzyć zasady niestandardowe zarówno dla zasobu usługi AKS, jak i dodatku usługi Azure Policy dla platformy Kubernetes. Dzięki temu można dodać dodatkowe ograniczenia zabezpieczeń, które chcesz wymusić w architekturze klastra i obciążenia.

Dodatkowe zasoby

Wskazówki dotyczące centrum architektury platformy Azure

Wytyczne w przewodniku Cloud Adoption Framework

Następne kroki