Uwaga
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.
Ten artykuł zawiera omówienie korzystania z narzędzia Vertical Pod Autoscaler (VPA) w usłudze Azure Kubernetes Service (AKS), która jest oparta na wersji rozwiązania Kubernetes typu open source.
Po skonfigurowaniu VPA automatycznie ustawia żądania zasobów i limity dla kontenerów dla każdego obciążenia na podstawie wcześniejszego użycia. VPA zwalnia CPU i pamięć dla innych podów i pomaga zapewnić efektywne wykorzystanie klastrów AKS. Narzędzie Do automatycznego skalowania zasobników w pionie zawiera zalecenia dotyczące użycia zasobów w czasie. Aby zarządzać nagłymi wzrostami użycia zasobów, użyj Horizontal Pod Autoscaler, który skaluje liczbę replik podów zgodnie z potrzebami.
Świadczenia
Narzędzie Do automatycznego skalowania zasobników pionowych oferuje następujące korzyści:
- Analizuje i dostosowuje zasoby procesora i pamięci w celu odpowiedniego rozmiaru aplikacji. VPA jest nie tylko odpowiedzialne za skalowanie w górę, ale także za skalowanie w dół na podstawie jego użycia zasobów w czasie.
- Zasobnik z trybem skalowania ustawionym na automatyczne lub ponowne tworzenie jest eksmitowany, jeśli musi zmienić żądania zasobów.
- Ograniczenia procesora CPU i pamięci dla poszczególnych kontenerów można ustawić, określając zasady zasobów.
- Zapewnia, że węzły mają odpowiednie zasoby do harmonogramowania zasobników.
- Oferuje konfigurowalne rejestrowanie wszelkich zmian wprowadzonych w zasobach procesora lub pamięci.
- Poprawia wykorzystanie zasobów klastra i zwalnia CPU oraz pamięć dla innych podów.
Ograniczenia i istotne zagadnienia
Podczas korzystania z Pionowego Autoscalera Podów, należy wziąć pod uwagę następujące ograniczenia i kwestie:
- VPA obsługuje maksymalnie 1000 zasobników skojarzonych z obiektami
VerticalPodAutoscaler
na klaster. - VPA może zalecić więcej zasobów niż jest dostępnych w klastrze, co uniemożliwia przypisanie podu do węzła oraz jego uruchomienie z powodu niewystarczających zasobów. To ograniczenie można przezwyciężyć, ustawiając wartość LimitRange na maksymalną dostępną ilość zasobów na przestrzeń nazw, co gwarantuje, że zasobniki nie pytają o więcej zasobów niż określono. Można również ustawić maksymalny poziom zalecanych zasobów dla każdego zasobnika w obiekcie
VerticalPodAutoscaler
. VPA nie może całkowicie rozwiązać problemu z niewystarczającymi zasobami węzła. Zakres limitów jest stały, ale użycie zasobów węzła jest zmieniane dynamicznie. - Nie zalecamy używania funkcji VPA z narzędziem Horizontal Pod Autoscaler (HPA), który jest skalowany na podstawie tych samych metryk użycia procesora CPU i pamięci.
- Usługa VPA Recommender przechowuje tylko do ośmiu dni danych historycznych.
- VPA nie obsługuje obciążeń działających na maszynie wirtualnej JVM ze względu na ograniczoną widoczność rzeczywistego zużycia pamięci przez obciążenie.
- VPA nie obsługuje uruchamiania własnej implementacji VPA równolegle. Obsługiwany jest dodatkowy lub niestandardowy system rekomendacji.
- Kontenery Windows w usłudze AKS nie są obsługiwane.
Omówienie VPA
Obiekt VPA składa się z trzech składników:
- Rekomendator: Moduł polecający monitoruje bieżące i wcześniejsze użycie zasobów, w tym historię metryk, zdarzenia OOM i specyfikacje wdrażania VPA. Używa zebranych informacji, aby udostępnić zalecane wartości dla żądań i limitów procesora (CPU) i pamięci dla kontenerów.
- Aktualizator: aktualizator monitoruje zarządzane zasobniki, aby upewnić się, że ich żądania zasobów są ustawione poprawnie. Jeśli nie, usuwa te pody, aby ich kontrolery mogły je ponownie utworzyć przy użyciu zaktualizowanych żądań.
- Kontroler przyjęć VPA: Kontroler przyjęć VPA ustawia prawidłowe żądania zasobów na nowych podach, które zostały nowo utworzone lub odtworzone przez ich kontroler, w oparciu o działanie Aktualizatora.
Kontroler wstępu VPA
Kontroler wstępu VPA jest programem binarnym, który rejestruje się jako "Mutating Admission Webhook". Po utworzeniu nowego podu Kontroler Wstępu VPA pobiera żądanie z serwera interfejsu API i ocenia, czy istnieje zgodna konfiguracja VPA lub znajduje odpowiednią i korzysta z bieżących zaleceń, aby ustawić żądania zasobów w podzie.
Samodzielne zadanie, overlay-vpa-cert-webhook-check
, działa poza Kontrolerem przyjęć VPA. Zadanie overlay-vpa-cert-webhook-check
tworzy i odnawia certyfikaty i rejestruje kontrolera dostępu VPA jako MutatingWebhookConfiguration
.
Tryby operacji obiektu VPA
Zasób pionowego autoskalowania zasobników, najczęściej deployment, jest wstawiany dla każdego kontrolera, dla którego chcesz, aby automatycznie obliczono wymagania dotyczące zasobów.
Istnieją cztery tryby, w których działa VPA:
-
Auto
: VPA przypisuje żądania zasobów podczas tworzenia zasobnika i aktualizuje istniejące zasobniki przy użyciu preferowanego mechanizmu aktualizacji.Auto
, który jest odpowiednikiemRecreate
, jest trybem domyślnym. Kiedy aktualizacje żądań zasobników bez ponownego uruchomienia lub w miejscu będą dostępne, mogą być używane jako preferowany mechanizm aktualizacji przez trybAuto
. W trybieAuto
VPA eksmituje pod, jeśli musi zmienić swoje żądania zasobów. Może to spowodować ponowne uruchomienie wszystkich zasobników jednocześnie, co może powodować niespójności aplikacji. Możesz ograniczyć ponowne uruchomienia i zachować spójność w tej sytuacji przy użyciu zasobnika PodDisruptionBudget. -
Recreate
: VPA przypisuje żądania zasobów podczas tworzenia zasobnika i aktualizuje istniejące zasobniki, eksmitując je, gdy żądane zasoby różnią się znacznie od nowych zaleceń (z uwzględnieniem zasobnika PodDisruptionBudget, jeśli jest zdefiniowana). Należy używać tego trybu tylko wtedy, gdy trzeba upewnić się, że zasobniki są ponownie uruchamiane za każdym razem, gdy żądanie zasobu ulegnie zmianie. W przeciwnym razie zalecamy korzystanie zAuto
trybu, który korzysta z aktualizacji bez ponownego uruchamiania po udostępnieniu. -
Initial
: VPA przypisuje tylko żądania zasobów podczas tworzenia zasobnika. Nie aktualizuje istniejących zasobników. Ten tryb jest przydatny do testowania i rozumienia zachowania VPA bez wpływu na uruchomione zasobniki. -
Off
: VPA nie zmienia automatycznie wymagań dotyczących zasobów zasobników. Zalecenia są obliczane i można je sprawdzić w obiekcie VPA.
Wzorzec wdrażania na potrzeby tworzenia aplikacji
Jeśli nie znasz VPA, zalecamy następujący wzorzec wdrażania podczas tworzenia aplikacji w celu zidentyfikowania jej unikalnych właściwości wykorzystania zasobów, przetestowania VPA, aby sprawdzić, czy działa prawidłowo, oraz przetestowania razem z innymi składnikami Kubernetes, w celu zoptymalizowania wykorzystania zasobów klastra.
- Ustaw
UpdateMode = "Off"
w klastrze produkcyjnym i uruchom VPA w trybie rekomendacji, aby mieć możliwość przetestowania i zapoznania się z VPA.UpdateMode = "Off"
może uniknąć wprowadzenia błędnej konfiguracji, która może spowodować awarię. - Najpierw zapewnij możliwość monitorowania, zbierając telemetrię rzeczywistego wykorzystania zasobów w danym okresie, co pomaga zrozumieć zachowanie i wszelkie oznaki problemów z zasobami kontenera i poda, wpływających na nie obciążeń.
- Zapoznaj się z danymi monitorowania, aby zrozumieć charakterystykę wydajności. Na podstawie tych szczegółowych informacji należy odpowiednio ustawić żądane żądania/limity, a następnie w następnym wdrożeniu lub uaktualnieniu.
- Ustaw
updateMode
wartość naAuto
,Recreate
lubInitial
w zależności od wymagań.
Następne kroki
Aby dowiedzieć się, jak skonfigurować Vertical Pod Autoscaler w klastrze AKS, zobacz Używanie Vertical Pod Autoscaler w usłudze AKS.
Azure Kubernetes Service