Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- Holistyczne praktyki monitorowania i metodyki FinOps.
- Wybór infrastruktury strategicznej.
- Dynamiczne dostosowywanie rozmiaru i automatyczne skalowanie.
- Korzystanie z rabatów platformy Azure w celu uzyskania znacznych oszczędności.
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 i specyfikacja FOCUS.
Aby uzyskać więcej informacji, zobacz Co to jest FinOps?
Przygotowywanie środowiska aplikacji
Ocena rodziny 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 Azure Spot wspierają pule węzłów typu Spot i są wdrażane w jednej domenie błędów bez gwarancji wysokiej dostępności ani umowy o poziomie usług (SLA). Maszyny wirtualne typu spot umożliwiają korzystanie z niewykorzystanej pojemności platformy Azure ze znaczącymi zniżkami (do 90%, w porównaniu z cenami płatności zgodnie z modelem pay-as-you-go). 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 architekturze Arm (Arm64) | Maszyny wirtualne Arm64 są wydajne i ekonomiczne, ale nie mają wpływu na wydajność. 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% lepszy stosunek ceny do wydajności niż porównywalne maszyny wirtualne oparte na architekturze x86 na potrzeby obciążeń skalowalnych. | 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 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 przechowywania
Aby uzyskać więcej informacji na temat opcji magazynu i powiązanych zagadnień dotyczących kosztów, zobacz następujące artykuły:
- Najlepsze rozwiązania dotyczące magazynu i tworzenia kopii zapasowych w usłudze Azure Kubernetes Service (AKS)
- Opcje magazynu dla aplikacji w usłudze Azure Kubernetes Service (AKS)
Użyj 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 portalu Azure odciążają to początkowe wyzwanie, oferując zalecane konfiguracje dla różnych środowisk aplikacji, które są kosztowo efektywne i wydajne. Ustawienie wstępne Tworzenie i testowanie najlepiej nadaje się do tworzenia nowych obciążeń lub testowania istniejących obciążeń. Domyślne ustawienie Gospodarki Produkcyjnej jest najlepsze do obsługi ruchu produkcyjnego w sposób zorientowany na koszty, jeżeli 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ść w uruchamianiu klastrów obsługujących wielu najemców i izolowaniu zasobów. W celu przyjaznej wielodostępności można udostępniać klastry i infrastrukturę między zespołami i jednostkami biznesowymi poprzez logiczną izolację. Przestrzenie nazw Kubernetes tworzą logiczną granicę izolacji 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 wielodostępności w AKS i Projektowanie klastrów na potrzeby wielodostępności.
Ostrzeżenie
Środowiska Kubernetes nie są całkowicie bezpieczne dla wrogiego współdzielenia zasobów. Jeśli któregokolwiek z najemców w infrastrukturze współdzielonej nie można uznać za godnego zaufania, konieczne jest bardziej szczegółowe planowanie, aby zapobiec wpływowi najemców 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ą konsekwencją.
Tworzenie aplikacji natywnych dla chmury
Uczyń swój kontener jak najlżejszym
Kontener zoptymalizowany odnosi się do optymalizacji rozmiaru i zużycia zasobów przez aplikację konteneryzowaną. 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 pamięci masowej 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 dodatkową moc obliczeniową. 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 do analizowania trendów wydatków, identyfikowania możliwości optymalizacji i zwiększania odpowiedzialności deweloperów aplikacji oraz zespołów odpowiedzialnych za platformę. Włącz dodatek Analiza kosztów usługi AKS, aby uzyskać szczegółowy podział kosztów klastra według konstrukcji platformy Kubernetes oraz kategorii 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.
Analiza dzienników
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.
Za pomocą przekształceń w usłudze Azure Monitor można również filtrować lub modyfikować dzienniki płaszczyzny sterowania i płaszczyzny danych przed ich wysłaniem do obszaru roboczego usługi Log Analytics. Aby uzyskać więcej informacji na temat tworzenia przekształcenia, zobacz Tworzenie przekształcenia w usłudze Azure Monitor.
Zalecenia dotyczące kosztów w usłudze Azure Advisor
Zalecenia dotyczące kosztów usługi AKS w usłudze Azure Advisor zawierają zalecenia ułatwiające osiągnięcie wydajności kosztowej bez poświęcania niezawodności. Usługa Advisor analizuje konfiguracje zasobów i zaleca rozwiązania optymalizacji. Aby uzyskać więcej informacji, zobacz Get Azure Kubernetes Service (AKS) cost recommendations in Azure Advisor (Uzyskiwanie zaleceń dotyczących kosztów usługi Azure Kubernetes Service (AKS) w usłudze Azure Advisor.
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
Automatyczne skalowanie pionowe podów
Żą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ć dławienie wydajności i problemy z obciążeniem z powodu braku pamięci. Mechanizm Vertical Pod Autoscaler (VPA) umożliwia dostosowanie zasobów CPU i pamięci wymaganych przez pody. 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. Tryb wyłączony tylko rekomendacji VPA umożliwia zespołom przeglądanie sugestii dotyczących zasobów bez automatycznego wymuszania ich. Ten tryb można włączyć podczas testowania, a rekomendacje dotyczące vpA mogą służyć do ustawiania żądań procesora CPU i pamięci oraz limitów dla środowisk produkcyjnych.
Automatyczne skalowanie podów w poziomie
Narzędzie Horizontal Pod Autoscaler (HPA) dynamicznie skaluje liczbę replik podów na podstawie obserwowanych metryk, takich jak użycie CPU lub pamięci. W okresach wysokiego zapotrzebowania narzędzie HPA skaluje, dodając więcej replik zasobników, aby dystrybuować obciążenie. W okresach niskiego zapotrzebowania narzędzie HPA skaluje się, zmniejszając liczbę replik dla oszczędności zasobów. Najlepsze w przypadku aplikacji z przewidywalnymi wymaganiami dotyczącymi zasobów.
Ostrzeżenie
Nie powinno się używać VPA z HPA na tych samych metrykach procesora 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 CPU lub pamięci razem 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.
Kubernetes: automatyczne skalowanie oparte na zdarzeniach
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 KEDA może monitorować napływający ruch żądań HTTP i regulować liczbę replik zasobników, aby zapewnić responsywność aplikacji. 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. KEDA umożliwia również skalowanie w dół do 0 replik, szczególnie przydatne w przypadku sporadycznych obciążeń opartych na zdarzeniach, okresowych obciążeń uczenia maszynowego (ML) lub procesorów GPU oraz środowisk tworzenia/testowania lub niskiego ruchu.
Włączanie skalowania automatycznego infrastruktury
Skalowanie automatyczne klastra
Aby sprostać zapotrzebowaniu na aplikacje, Cluster Autoscaler monitoruje zasobniki, których nie można zaplanować z powodu ograniczeń zasobów, i odpowiednio dostosowuje 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 provisionowanie 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 najlepszych praktyk skalowania, zobacz Wydajność i skalowanie dla małych i średnich obciążeń w usłudze Azure Kubernetes Service (AKS) oraz Najlepsze praktyki wydajności i skalowania dla dużych obciążeń w usłudze Azure Kubernetes Service (AKS).
Oszczędzaj dzięki rabatom platformy Azure
Azure Reservations
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.
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: