Notatka
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.
Po uruchomieniu aplikacji w Azure Kubernetes Service (AKS) można skalować zasobniki, zasoby zasobnika, węzły lub obciążenia sterowane zdarzeniami, aby dopasować je do zmian zapotrzebowania. Usługa AKS obsługuje skalowanie ręczne, automatyczne skalowanie zasobników w poziomie (HPA), automatyczne skalowanie zasobników w pionie (VPA), automatyczne skalowanie klastra, automatyczne skalowanie oparte na zdarzeniach Kubernetes (KEDA), automatyczne aprowizowanie węzłów oraz skalowanie impulsowe przy użyciu Azure Container Instances (ACI).
Wybieranie właściwej metody skalowania
| Metoda skalowania | Najlepsze dla | Metryka klucza | Przewodnik |
|---|---|---|---|
| Narzędzie do automatycznego skalowania zasobników w poziomie (HPA) | Obciążenia bezstanowe lub podzielne o zmiennym obciążeniu | Wykorzystanie procesora CPU, RPS, głębokość kolejki | Kiedy należy używać narzędzia Horizontal Pod Autoscaling (HPA) na platformie Kubernetes? |
| Automatyczne skalowanie pionowe Podów (VPA) | Zadania niepoddające się równolegleniu; właściwe dostosowanie żądań zasobów poda | Użycie zasobów procesora CPU/pamięci | Korzystanie z Vertical Pod Autoscaler w usłudze AKS |
| Cluster Autoscaler | Pojemność na poziomie węzła, gdy zasobniki pozostają oczekujące | Oczekujące pody | Używanie funkcji Cluster Autoscaler w usłudze AKS |
| KEDA | Obciążenia sterowane zdarzeniami; wymagane skalowanie do zera | Długość kolejki, zaległe zdarzenia | Omówienie dodatku KEDA |
| Skalowanie skokowe ACI | Obsługa nagłych wzrostów przekraczających pojemność puli węzłów | Skokowe zapotrzebowanie | Tworzenie węzłów wirtualnych przy użyciu Azure Container Instances |
Ręczne skalowanie zasobników lub węzłów
Repliki podów i węzły można ręcznie skalować, aby sprawdzić, jak aplikacja reaguje na zmiany w dostępnych zasobach, lub utrzymać stały poziom dostępnych zasobów. Aby przeprowadzić skalowanie ręcznie, zdefiniuj wymaganą liczbę replik lub węzłów. Następnie platforma Kubernetes tworzy lub usuwa zasobniki, a usługa AKS dodaje lub usuwa węzły z odpowiedniej puli węzłów.
Gdy zmniejszasz liczbę węzłów, usługa AKS wywołuje odpowiedni interfejs API usługi Azure Compute dla typu obliczeniowego klastra. W przypadku klastrów opartych na Virtual Machine Scale Sets interfejs API Virtual Machine Scale Sets określa węzły do usunięcia. Aby uzyskać więcej informacji, zobacz często zadawane pytania dotyczące Virtual Machine Scale Sets.
Aby rozpocząć pracę, zobacz:
Narzędzie do automatycznego skalowania zasobników w poziomie
Użyj HPA, gdy Twoje obciążenie może działać w wielu identycznych replikach, a zapotrzebowanie się waha. Skalowanie odbywa się na podstawie użycia CPU/pamięci, metryk aplikacji (żądań na sekundę, latencji) lub metryk zewnętrznej kolejki i zaległości — i należy je połączyć z mechanizmem Cluster Autoscaler w celu skalowania pojemności węzłów.
Dowiedz się więcej: Kiedy należy używać narzędzia Horizontal Pod Autoscaling (HPA) na platformie Kubernetes?
Zobacz również: Korzystanie z automatycznego skalowania pionowego zasobników w usłudze AKS, aby odpowiednio dobrać żądania dotyczące procesora CPU i pamięci dla zasobników.
Pionowy autoskalator poda
Vertical Pod Autoscaler analizuje użycie procesora i pamięci przez pod oraz zaleca lub stosuje odpowiednie żądania zasobów. Użyj VPA, aby dostosować rozmiar zasobów dla obciążeń, których nie można efektywnie skalować przez dodawanie replik, lub aby usprawnić harmonogramowanie i wykorzystanie zasobów.
W zależności od trybu aktualizacji VPA może stosować zalecenia podczas tworzenia podów albo eksmitować i odtwarzać pody ze zaktualizowanymi żądaniami zasobów. Przed zezwoleniem VPA na automatyczne stosowanie zmian zapoznaj się z wymaganiami dotyczącymi dostępności obciążeń roboczych.
Aby rozpocząć, zobacz Korzystanie z funkcji Vertical Pod Autoscaler w usłudze AKS.
Autoskalowanie klastra
Narzędzie do automatycznego skalowania klastra dostosowuje liczbę węzłów w puli węzłów zgodnie z wymaganiami dotyczącymi planowania zasobników. Dodaje węzły, gdy nie można zaplanować zasobników z powodu niewystarczającej pojemności węzła i usuwa nie w pełni wykorzystywane węzły, gdy ich obciążenia mogą być uruchamiane w innym miejscu.
Narzędzie do automatycznego skalowania klastra jest często używane z rozwiązaniem HPA. HPA dostosowuje liczbę replik zasobników w zależności od obciążenia, podczas gdy Cluster Autoscaler dostosowuje zasoby węzłów, aby pomieścić te zasobniki.
Aby rozpocząć, zobacz Używanie narzędzia Cluster Autoscaler w usłudze AKS.
Zdarzenia skalowania poziomego
Jeśli pula węzłów nie ma wystarczających zasobów obliczeniowych dla zasobnika, zasobnik pozostanie oczekujący. Gdy Cluster Autoscaler wykryje pody, których nie można przydzielić z powodu ograniczeń zasobów w puli węzłów, zwiększa liczbę węzłów w tej puli. Kubernetes przydziela oczekujące pody po aprowizacji nowych węzłów i gdy będą one gotowe.
Aprowizowanie węzłów opartych na maszynie wirtualnej może potrwać kilka minut. W przypadku obciążeń z nagłym wzrostem zapotrzebowania rozważ użycie węzłów wirtualnych i Azure Container Instances.
Zdarzenia zmniejszania skali
Cluster Autoscaler monitoruje węzły pod kątem niewystarczającego wykorzystania i określa, czy ich pody mogą działać na innych węzłach. Gdy węzeł nie jest już wymagany, platforma Kubernetes ponownie wysyła zasobniki, a usługa AKS usuwa węzeł z puli węzłów.
Operacje skalowania w dół mogą zakłócać obciążenia robocze, gdy zasobniki przemieszczają się między węzłami. Uruchom wiele replik zasobników i skonfiguruj odpowiednie mechanizmy zapewniania dostępności, aby zminimalizować zakłócenia w działaniu.
Skalowanie automatyczne oparte na zdarzeniach w Kubernetes
Rozwiązanie Kubernetes Event-driven Autoscaling (KEDA) to składnik typu open source, który skaluje obciążenia na podstawie zdarzeń. KEDA rozszerza platformę Kubernetes na zasoby niestandardowe, w tym ScaledObject, opisujące sposób reagowania obciążenia na źródło zdarzenia lub metrykę.
KEDA jest przydatna w przypadku obciążeń roboczych przetwarzających kolejki, strumienie, komunikaty lub inne zaległe zdarzenia. Może skalować obsługiwane obciążenia robocze do zera, gdy nie ma żadnych zdarzeń, oraz zwiększać liczbę replik wraz ze wzrostem zaległości.
Aby rozpocząć, zobacz omówienie dodatku KEDA.
Automatyczne provisionowanie węzłów
Automatyczne aprowizowanie węzłów (NAP) używa projektu Firmy Karpenter typu open source do aprowizowania węzłów i zarządzania nimi zgodnie z oczekiwaniami dotyczącymi wymagań zasobników. NAP wybiera odpowiedni typ SKU maszyny wirtualnej i liczbę węzłów, aby sprostać zapotrzebowaniu na obciążenia w czasie rzeczywistym.
NAP zaczyna od dozwolonego zestawu jednostek SKU maszyn wirtualnych i wybiera zasoby dla oczekujących obciążeń. Możesz zdefiniować limity zasobów i preferencje planowania, aby kontrolować sposób, w jaki są aprowizowane węzły i rozdzielane obciążenia.
Skalowanie i zabezpieczenia płaszczyzny sterowania
Kubernetes ma wielowymiarowy zakres skalowalności, w którym każdy typ zasobu stawia odmienne wymagania warstwie sterowania. Na przykład mechanizmy obserwowania zasobów, takich jak sekrety, mogą generować żądania listowania do serwera API Kubernetes i powodować większe obciążenie płaszczyzny sterowania niż w przypadku zasobów bez mechanizmu obserwowania.
Ponieważ płaszczyzna sterowania zarządza operacjami na zasobach w całym klastrze, intensywne skalowanie w jednym obszarze może zmniejszyć dostępną wydajność w innych. Na przykład uruchamianie setek tysięcy zasobników może wpływać na tempo mutacji zasobników obsługiwane przez płaszczyznę sterowania. Aby zapoznać się z zaleceniami, zobacz Najlepsze praktyki klienta Kubernetes dla klastrów usługi AKS o dużej skali.
AKS automatycznie skaluje składniki płaszczyzny sterowania na podstawie sygnałów, takich jak łączna liczba rdzeni klastra oraz obciążenie procesora lub pamięci składników płaszczyzny sterowania.
Aby sprawdzić, czy płaszczyzna sterowania została skalowana w górę, sprawdź obiekt ConfigMap large-cluster-control-plane-scaling-status:
kubectl describe configmap large-cluster-control-plane-scaling-status -n kube-system
Zabezpieczenia płaszczyzny sterowania
Jeśli automatyczne skalowanie serwera interfejsu API nie stabilizuje go przy dużym obciążeniu, usługa AKS może wdrożyć zarządzany mechanizm ochrony serwera interfejsu API. To zabezpieczenie ostatniej instancji ogranicza tempo żądań od klientów niesystemowych, aby zapobiec sytuacji, w której płaszczyzna sterowania przestaje odpowiadać. Wywołania serwera API o krytycznym znaczeniu dla systemu z komponentów takich jak kubelet nadal działają.
Aby ustalić, czy zastosowano zabezpieczenie zarządzanego serwera interfejsu API, sprawdź aks-managed-apiserver-guardFlowSchema i PriorityLevelConfiguration:
kubectl get flowschemas
kubectl get prioritylevelconfigurations
Jeśli te zasoby są obecne, zapoznaj się z przewodnikiem rozwiązywania problemów z serwerem interfejsu API i itp. , aby uzyskać wskazówki dotyczące ograniczania ryzyka.
Przenoszenie do usługi Azure Container Instances (ACI)
Usługę AKS można zintegrować z Azure Container Instances w celu obsługi szybkiego wzrostu zapotrzebowania. Automatyczne skalowanie podów może utworzyć więcej replik, niż jest w stanie obsłużyć istniejąca pula węzłów, a udostępnienie dodatkowych węzłów bazujących na maszynach wirtualnych może potrwać kilka minut. Usługa ACI zapewnia pojemność obliczeniową bez konieczności stosowania dodatkowych węzłów maszyny wirtualnej.
Składnik usługi AKS węzły wirtualne jest oparty na Virtual Kubelet i przedstawia ACI jako wirtualny węzeł Kubernetes. Platforma Kubernetes może uruchamiać kwalifikujące się pody przez węzeł wirtualny tak, aby działały jako wystąpienia kontenerów w usłudze ACI zamiast bezpośrednio na węzłach maszyn wirtualnych AKS.
Węzły wirtualne korzystają z innej podsieci w tej samej sieci wirtualnej co klaster AKS. Ta konfiguracja zapewnia łączność sieci prywatnej między usługą AKS i usługą ACI, umożliwiając usłudze ACI działanie jako logiczne rozszerzenie klastra.
Następne kroki
Użyj następujących zasobów, aby zaimplementować metodę skalowania pasującą do obciążenia:
- Ręczne skalowanie zasobników lub węzłów
- Kiedy należy używać narzędzia Horizontal Pod Autoscaling (HPA) na platformie Kubernetes?
- Korzystanie z Vertical Pod Autoscaler w usłudze AKS
- Używanie funkcji Cluster Autoscaler w usłudze AKS
- Korzystanie z dodatku KEDA
- Użyj automatycznego aprowizowania węzłów
- Tworzenie węzłów wirtualnych przy użyciu Azure Container Instances
Aby uzyskać więcej informacji na temat podstawowych pojęć związanych z platformą Kubernetes i usługą AKS, zobacz: