Udostępnij za pośrednictwem


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:

Rodzina jednostek SKU opis Przypadek użycia
Maszyny wirtualne typu spot platformy Azure Zestawy skalowania maszyn wirtualnych usługi Azure Spot z powrotem pule węzłów typu spot i wdrożone w jednej domenie błędów bez gwarancji wysokiej dostępności ani umowy dotyczącej poziomu usług (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 są zagrożone wydajnością. Dzięki obsłudze puli węzłów Arm64 w usłudze AKS można tworzyć węzły agenta arm64 Ubuntu, a nawet łączyć 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 zoptymalizowanych pod kątem procesora GRAFICZNEgo (GPU) jednostek SKU maszyn wirtualnych. 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.

Przegląd opcji magazynu

Aby uzyskać więcej informacji na temat opcji magazynu i powiązanych zagadnień dotyczących kosztów, zobacz następujące artykuły:

Korzystanie z konfiguracji ustawień wstępnych klastra

Wybranie odpowiedniej jednostki SKU maszyny wirtualnej, regionów, liczby węzłów i innych opcji konfiguracji może być trudne. 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 można udostępniać klastry i infrastrukturę między zespołami i jednostkami biznesowymi 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 większe planowanie, aby zapobiec wpływowi dzierżaw na zabezpieczenia 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 skraca czas wdrażania i zwiększa 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 limitów przydziałów zasobów uniemożliwia poszczególnym przestrzeniom nazw korzystanie z większej ilości zasobów niż przydzielone. Przydziały zasobów są przydatne w przypadku klastrów wielodostępnych, w których zespoły współdzielą infrastrukturę.

Korzystanie z uruchamiania/zatrzymywania klastra

W przypadku pozostawienia nienadzorowanego małe klastry programistyczne/testowe mogą naliczać niepotrzebne koszty. Klastry, które nie muszą być uruchamiane przez cały czas, można wyłączyć przy użyciu funkcji uruchamiania i zatrzymywania klastra. Ta funkcja wyłącza wszystkie pule węzłów systemu i użytkownika, dzięki czemu nie płacisz za dodatkowe obliczenia. Stan klastra i obiektów jest utrzymywany 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 jest 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 migrację do zarządzanego 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.

Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące usługi Azure Monitor i zarządzanie kosztami dla usługi Container Insights.

Log Analytics

W przypadku dzienników płaszczyzny sterowania rozważ wyłączenie kategorii, których nie potrzebujesz i/lub przy użyciu interfejsu API dzienników podstawowych, jeśli ma to zastosowanie w celu zmniejszenia kosztów usługi Log Analytics. Aby uzyskać więcej informacji, zobacz Azure Kubernetes Service (AKS) control plane/resource logs (Dzienniki zasobów usługi Azure Kubernetes Service). W przypadku dzienników płaszczyzny danych lub dzienników aplikacji rozważ dostosowanie ustawień optymalizacji kosztów.

Optymalizowanie obciążeń za pomocą skalowania automatycznego

Ustanawianie punktu odniesienia

Przed skonfigurowaniem ustawień skalowania automatycznego można użyć usługi Azure Load Testing , aby ustanowić punkt odniesienia dla aplikacji. Testowanie obciążenia pomaga zrozumieć, jak aplikacja zachowuje się w różnych warunkach ruchu i identyfikuje wąskie gardła wydajności. Po utworzeniu planu bazowego możesz skonfigurować ustawienia skalowania automatycznego, aby upewnić się, że aplikacja może obsłużyć oczekiwane obciążenie.

Włączanie skalowania automatycznego aplikacji

Skalowanie automatyczne zasobnika w pionie

Żądania i limity, które są 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 zasobników w poziomie

Narzędzie Horizontal Pod Autoscaler (HPA) dynamicznie skaluje liczbę replik zasobników na podstawie obserwowanych metryk, takich 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 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 z HPA dla metryk niestandardowych, aby zapobiec nakładaniu się i upewnić się, że każdy autoskalator 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, narzędzie do automatycznego skalowania klastra obserwuje 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 skaluje w dół liczbę węzłów. Ustawienia profilu skalowania automatycznego klastra mają zastosowanie do wszystkich pul węzłów z obsługą skalowania automatycznego w klastrze. Aby uzyskać więcej informacji, zobacz Cluster Autoscaler best practices and considerations (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. Automatyczne aprowizowanie węzła (NAP) upraszcza proces wyboru jednostki SKU i decyduje o optymalnej konfiguracji maszyny wirtualnej na podstawie oczekujących wymagań dotyczących zasobów zasobników w celu uruchamiania obciążeń w najbardziej wydajny i ekonomiczny sposób.

Uwaga

Aby uzyskać więcej informacji na temat skalowania najlepszych rozwiązań, zobacz Performance and scaling for small to medium workloads in Azure Kubernetes Service (AKS) and Performance and scaling best practices for large workloads in Azure Kubernetes Service (AKS) (Wydajność i skalowanie dla dużych obciążeń w usłudze Azure Kubernetes Service (AKS).

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 użycie 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 ma kilka godnych uwagi projektów, takich jak:

  • FinOps Framework: model operacyjny umożliwiający trenowanie i implementowanie metodyki FinOps.
  • SPECYFIKACJA FOKUS: Specyfikacja techniczna i otwarty standard dla danych dotyczących użycia, kosztów i rozliczeń w chmurze 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: