Optymalizowanie kosztów w usłudze Azure Kubernetes Service (AKS)

Optymalizacja kosztów polega na maksymalizacji wartości zasobów przy jednoczesnym zminimalizowaniu niepotrzebnych wydatków w środowisku chmury. Ten proces obejmuje zidentyfikowanie tanich opcji konfiguracji i zaimplementowanie najlepszych rozwiązań w celu zwiększenia wydajności operacyjnej. Środowisko usługi AKS można zoptymalizować w celu zminimalizowania kosztów, uwzględniając wymagania dotyczące wydajności i niezawodności.

Z tego artykułu dowiesz się więcej o:

  • Wybór infrastruktury strategicznej
  • Dynamiczne prawa do skalowania i skalowania automatycznego
  • Korzystanie z rabatów platformy Azure w celu uzyskania znacznych oszczędności
  • Holistyczne praktyki monitorowania i metodyki FinOps

Przygotowywanie środowiska aplikacji

Ocena rodziny jednostek SKU

Przed wdrożeniem ważne jest, aby ocenić wymagania dotyczące zasobów aplikacji. Małe obciążenia programistyczne mają różne potrzeby dotyczące infrastruktury niż duże obciążenia gotowe do produkcji. Chociaż kombinacja konfiguracji procesora CPU, pamięci i sieci w dużym stopniu wpływa na efektywność kosztową jednostki SKU, należy wziąć pod uwagę następujące typy maszyn wirtualnych:

  • Pule węzłów typu spot maszyn wirtualnych - typu spot usługi Azure Spot są wspierane przez zestawy skalowania maszyn wirtualnych typu spot platformy Azure i wdrażane w jednej domenie błędów bez gwarancji wysokiej dostępności ani umowy SLA. 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. Najlepsze w przypadku środowisk deweloperskich/testowych obciążenia, które mogą obsługiwać przerwy, takie jak zadania przetwarzania wsadowego i obciążenia z elastycznym czasem wykonywania.
  • Procesory oparte na armie Ampere Altra (ARM64) — maszyny wirtualne ARM64 są wydajne i ekonomiczne, ale nie naruszają wydajności. Dzięki obsłudze puli węzłów AMR64 w usłudze AKS można tworzyć węzły agenta ARM64 Ubuntu, a nawet mieszać węzły architektury Intel i ARM w klastrze. Te maszyny wirtualne arm są zaprojektowane w celu wydajnego uruchamiania dynamicznych, skalowalnych obciążeń i mogą zapewnić do 50% lepszą wydajność niż porównywalne maszyny wirtualne oparte na architekturze x86 na potrzeby obciążeń skalowalnych w poziomie. Najlepsze dla serwerów internetowych lub aplikacji, baz danych typu open source, aplikacji natywnych dla chmury, serwerów gier i nie tylko.
  • Jednostki SKU zoptymalizowane pod kątem procesora GPU — w zależności od charakteru obciążenia rozważ użycie zoptymalizowanych pod kątem obliczeń, zoptymalizowanych pod kątem pamięci, zoptymalizowanych pod kątem magazynu, a nawet jednostek SKU zoptymalizowanych pod kątem procesora GRAFICZNEgo (GPU). Rozmiary maszyn wirtualnych procesora GPU to wyspecjalizowane maszyny wirtualne, które są dostępne w przypadku pojedynczych, wielokrotnych i ułamkowych procesorów GPU. Pule węzłów systemu Linux z obsługą procesora GPU w usłudze AKS są najlepsze w przypadku obciążeń intensywnie korzystających z obliczeń, takich jak renderowanie grafiki, trenowanie dużych modeli i wnioskowanie.

Uwaga

Koszt obliczeń różni się w różnych regionach. Podczas wybierania tańszego regionu do uruchamiania obciążeń należy być świadomy potencjalnego wpływu opóźnienia, a także kosztów transferu danych. Aby dowiedzieć się więcej o jednostkach SKU maszyn wirtualnych i ich cechach, zobacz Rozmiary maszyn wirtualnych na platformie Azure.

Korzystanie z konfiguracji ustawień wstępnych klastra

Pobieranie odpowiedniej jednostki SKU maszyny wirtualnej, regionów, liczby węzłów i innych opcji konfiguracji może być trudne z góry. Konfiguracje ustawień wstępnych klastra w witrynie Azure Portal odciążają to początkowe wyzwanie, zapewniając zalecane konfiguracje dla różnych środowisk aplikacji, które są świadome i wydajne. Ustawienie wstępne Tworzenie i testowanie najlepiej nadaje się do tworzenia nowych obciążeń lub testowania istniejących obciążeń. Ustawienie wstępne Gospodarki produkcyjnej jest najlepsze w przypadku obsługi ruchu produkcyjnego w sposób świadomy kosztów, jeśli obciążenia mogą tolerować przerwy. Funkcje niekrytyczne są domyślnie wyłączone, a wartości wstępne można modyfikować w dowolnym momencie.

Rozważ wielodostępność

Usługa AKS zapewnia elastyczność uruchamiania wielodostępnych klastrów i izolowania zasobów. W przypadku przyjaznej wielodostępności klastry i infrastruktura mogą być współużytkowane przez zespoły i jednostki biznesowe poprzez izolację logiczną. Przestrzenie nazw kubernetes tworzą granicę izolacji logicznej dla obciążeń i zasobów. Udostępnianie infrastruktury zmniejsza obciążenie związane z zarządzaniem klastrem, jednocześnie zwiększając wykorzystanie zasobów i gęstość zasobników w klastrze. Aby dowiedzieć się więcej na temat wielodostępności w usłudze AKS i określić, czy jest ona odpowiednia dla potrzeb organizacji, zobacz Zagadnienia dotyczące usługi AKS dotyczące wielodostępności i klastrów projektowych na potrzeby wielodostępności.

Ostrzeżenie

Środowiska Kubernetes nie są całkowicie bezpieczne dla wrogiej wielodostępności. Jeśli żadna dzierżawa w infrastrukturze udostępnionej nie może być zaufana, konieczne jest dodatkowe planowanie, aby zapobiec wpływowi dzierżaw na bezpieczeństwo innych usług.

Należy wziąć pod uwagę granice izolacji fizycznej. W tym modelu zespoły lub obciążenia są przypisywane do własnego klastra. Dodatkowe koszty związane z zarządzaniem i finansami będą kompromisem.

Tworzenie aplikacji natywnych dla chmury

Jak najbardziej chudy kontener

Kontener lean odnosi się do optymalizacji rozmiaru i śladu zasobów konteneryzowanej aplikacji. Sprawdź, czy obraz podstawowy jest minimalny i zawiera tylko niezbędne zależności. Usuń wszelkie niepotrzebne biblioteki i pakiety. Mniejszy obraz kontenera przyspieszy czas wdrażania i zwiększy wydajność operacji skalowania. Przesyłanie strumieniowe artefaktów w usłudze AKS umożliwia przesyłanie strumieniowe obrazów kontenerów z usługi Azure Container Registry (ACR). Ściąga tylko niezbędną warstwę do początkowego uruchamiania zasobnika, co skraca czas ściągania większych obrazów z minut do sekund.

Wymuszanie przydziałów zasobów

Przydziały zasobów umożliwiają rezerwowanie i ograniczanie zasobów w zespole deweloperów lub projekcie. Limity przydziału są definiowane w przestrzeni nazw i mogą być ustawiane na zasoby obliczeniowe, zasoby magazynu i liczbę obiektów. Podczas definiowania przydziałów zasobów poszczególne przestrzenie nazw nie mogą zużywać więcej zasobów niż przydzielone. Jest to szczególnie ważne w przypadku klastrów wielodostępnych, w których zespoły współdzielą infrastrukturę.

Korzystanie z zatrzymania uruchamiania klastra

Małe klastry programistyczne i testowe, gdy pozostawione nienadzorowane, mogą zdawać sobie sprawę z dużych ilości niepotrzebnych wydatków. Wyłącz klastry, które nie muszą być uruchamiane przez cały czas przy użyciu uruchamiania i zatrzymywania klastra. Spowoduje to zamknięcie wszystkich pul węzłów systemu i użytkownika, dzięki czemu nie płacisz za dodatkowe obliczenia. Wszystkie obiekty i stan klastra zostaną zachowane po ponownym uruchomieniu klastra.

Korzystanie z rezerwacji pojemności

Rezerwacje pojemności umożliwiają rezerwę pojemności obliczeniowej w regionie platformy Azure lub strefie dostępności przez dowolny czas. Pojemność zarezerwowana będzie dostępna do natychmiastowego użycia do momentu usunięcia rezerwacji. Kojarzenie istniejącej grupy rezerwacji pojemności z pulą węzłów gwarantuje przydzieloną pojemność dla puli węzłów i pomaga uniknąć potencjalnych skoków cen na żądanie w okresach wysokiego zapotrzebowania na zasoby obliczeniowe.

Monitorowanie środowiska i wydatków

Zwiększanie widoczności za pomocą usługi Microsoft Cost Management

Usługa Microsoft Cost Management oferuje szeroki zestaw funkcji ułatwiających budżetowanie chmury, prognozowanie i widoczność kosztów zarówno wewnątrz klastra, jak i poza nim. Odpowiedni wgląd jest niezbędny w przypadku szyfrowania trendów wydatków, identyfikowania możliwości optymalizacji i zwiększania odpowiedzialności wśród deweloperów aplikacji i zespołów platformy. Włącz dodatek Analiza kosztów usługi AKS na potrzeby szczegółowego podziału kosztów klastra według konstrukcji platformy Kubernetes wraz z kategoriami Azure Compute, Network i Storage.

Azure Monitor

Jeśli pozyskujesz dane metryk za pośrednictwem usługi Container Insights, zalecamy przeprowadzenie migracji do zarządzanych metryk Rozwiązania Prometheus, co zapewnia znaczną redukcję kosztów. Metryki usługi Container Insights można wyłączyć przy użyciu reguły zbierania danych (DCR) i wdrożyć zarządzany dodatek Prometheus, który obsługuje konfigurację za pośrednictwem usługi Azure Resource Manager, interfejsu wiersza polecenia platformy Azure, witryny Azure Portal i narzędzia Terraform.

Jeśli korzystasz z pozyskiwania dzienników, zalecamy również użycie podstawowego interfejsu API dzienników w celu zmniejszenia kosztów usługi Log Analytics. Aby dowiedzieć się więcej, zobacz Azure Monitor best practices and managing costs for Container Insights (Najlepsze rozwiązania dotyczące usługi Azure Monitor i zarządzanie kosztami usługi Container Insights).

Optymalizowanie obciążeń za pomocą skalowania automatycznego

Włączanie skalowania automatycznego aplikacji

Skalowanie automatyczne pionowych zasobników

Żądania i limity, które są znacznie wyższe niż rzeczywiste użycie, mogą spowodować nadmierne aprowizowane obciążenia i zmarnowane zasoby. Z kolei żądania i limity, które są zbyt niskie, mogą powodować problemy z ograniczaniem przepustowości i obciążeniem z powodu braku pamięci. Narzędzie do automatycznego skalowania zasobników (VPA) w pionie umożliwia dostosowanie zasobów procesora i pamięci wymaganych przez zasobniki. Usługa VPA udostępnia zalecane wartości dla żądań procesora CPU i pamięci oraz limitów na podstawie historycznego użycia kontenera, które można ustawić ręcznie lub automatycznie aktualizować. Najlepsze rozwiązanie dla aplikacji ze zmiennymi wymaganiami dotyczącymi zasobów.

Skalowanie automatyczne zasobnika w poziomie

Narzędzie do automatycznego skalowania zasobników w poziomie (HPA) dynamicznie skaluje liczbę replik zasobników na podstawie obserwowanej metryki, takiej jak użycie procesora CPU lub pamięci. W okresach wysokiego zapotrzebowania narzędzie HPA skaluje w poziomie, dodając więcej replik zasobników w celu dystrybucji obciążenia. W okresach niskiego zapotrzebowania narzędzie HPA skaluje w poziomie, zmniejszając liczbę replik w celu oszczędzania zasobów. Najlepsze w przypadku aplikacji z przewidywalnymi wymaganiami dotyczącymi zasobów.

Ostrzeżenie

Nie należy używać vpA w połączeniu z HPA na tych samych metrykach procesora CPU lub pamięci. Ta kombinacja może prowadzić do konfliktów, ponieważ obie autoskalatory próbują reagować na zmiany zapotrzebowania przy użyciu tych samych metryk. Można jednak użyć vpA dla procesora CPU lub pamięci w połączeniu z HPA dla metryk niestandardowych, aby zapobiec nakładaniu się i upewnić się, że każdy moduł skalowania automatycznego koncentruje się na różnych aspektach skalowania obciążenia.

Skalowanie automatyczne oparte na zdarzeniach kubernetes

Dodatek Kubernetes Event-driven Autoscaler (KEDA) zapewnia dodatkową elastyczność skalowania na podstawie różnych metryk opartych na zdarzeniach, które są zgodne z zachowaniem aplikacji. Na przykład w przypadku aplikacji internetowej usługa KEDA może monitorować przychodzący ruch żądań HTTP i dostosowywać liczbę replik zasobników, aby zapewnić, że aplikacja będzie reagować. W przypadku zadań przetwarzania usługa KEDA może skalować aplikację na podstawie długości kolejki komunikatów. Obsługa zarządzana jest zapewniana dla wszystkich usług Azure Scalers.

Włączanie skalowania automatycznego infrastruktury

Skalowanie automatyczne klastra

Aby nadążyć za zapotrzebowaniem na aplikacje, funkcja skalowania automatycznego klastra monitoruje zasobniki, których nie można zaplanować z powodu ograniczeń zasobów i odpowiednio skaluje liczbę węzłów w puli węzłów. Gdy węzły nie mają uruchomionych zasobników, narzędzie do automatycznego skalowania klastra będzie skalować w dół liczbę węzłów. Należy pamiętać, że ustawienia profilu automatycznego skalowania klastra mają zastosowanie do wszystkich puli węzłów z obsługą skalowania automatycznego w klastrze. Aby dowiedzieć się więcej, zobacz Najlepsze rozwiązania i zagadnienia dotyczące skalowania automatycznego klastra.

Automatyczne aprowizowanie węzłów

Skomplikowane obciążenia mogą wymagać kilku pul węzłów z różnymi konfiguracjami rozmiarów maszyn wirtualnych, aby spełnić wymagania dotyczące procesora CPU i pamięci. Dokładne wybieranie kilku konfiguracji puli węzłów i zarządzanie nimi zwiększa złożoność i obciążenie operacyjne. Automatyczna aprowizacja węzła (NAP) 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.

Zapisywanie przy użyciu rabatów platformy Azure

Rezerwacje platformy Azure

Jeśli obciążenie jest przewidywalne i istnieje przez dłuższy czas, rozważ zakup rezerwacji platformy Azure, aby jeszcze bardziej zmniejszyć koszty zasobów. Rezerwacje platformy Azure działają w okresie rocznym lub trzyletnim, oferując do 72% rabatu w porównaniu z cenami płatności zgodnie z rzeczywistym użyciem w przypadku obliczeń. Rezerwacje są automatycznie stosowane do pasujących zasobów. Najlepiej w przypadku obciążeń zatwierdzonych do uruchamiania w tych samych jednostkach SKU i regionach w dłuższym okresie.

Plan oszczędnościowy platformy Azure

Jeśli masz spójne wydatki, ale korzystanie z różnych zasobów w jednostkach SKU i regionach sprawia, że rezerwacje platformy Azure są niewykonalne, rozważ zakup planu oszczędności platformy Azure. Podobnie jak rezerwacje platformy Azure, plany oszczędności platformy Azure działają w okresie jednego roku lub trzech lat i są automatycznie stosowane do wszystkich zasobów w zakresie korzyści. Zobowiązujesz się do wydawania stałej kwoty godzinowej na zasoby obliczeniowe niezależnie od jednostki SKU lub regionu. Najlepsze w przypadku obciążeń korzystających z różnych zasobów i/lub różnych regionów centrum danych.

Korzyść użycia hybrydowego platformy Azure

Korzyść użycia hybrydowego platformy Azure dla usługi Azure Kubernetes Service (AKS) pozwala zmaksymalizować licencje lokalne bez dodatkowych kosztów. Użyj jakichkolwiek kwalifikujących się licencji lokalnych, które mają również aktywny pakiet Software Assurance (SA) lub kwalifikującą się subskrypcję, aby uzyskać maszyny wirtualne z systemem Windows na platformie Azure przy obniżonych kosztach.

Przyjęcie metodyKi FinOps w celu utworzenia kultury oszczędzania kosztów

Operacje finansowe (FinOps) to dyscyplina łącząca odpowiedzialność finansową z zarządzaniem chmurą i optymalizacją. Koncentruje się on na zapewnieniu zgodności między zespołami finansowymi, operacyjnymi i inżynieryjnymi, aby zrozumieć i kontrolować koszty chmury. Fundacja FinOps wydała kilka godnych uwagi projektów:

  • FinOps Framework — model operacyjny umożliwiający trenowanie i implementowanie metodyki FinOps.
  • FOCUS Specification — specyfikacja techniczna i otwarty standard dotyczący użycia chmury, kosztów i danych rozliczeniowych we wszystkich głównych usługach dostawcy usług w chmurze.

Następne kroki

Optymalizacja kosztów to ciągły i iteracyjny wysiłek. Dowiedz się więcej, przeglądając następujące zalecenia i wskazówki dotyczące architektury: