Skalowanie automatyczne pionowych zasobników w usłudze Azure Kubernetes Service (AKS)
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 na obciążenie w oparciu o wcześniejsze użycie. VpA zwalnia procesor i pamięć dla innych zasobników i pomaga zapewnić efektywne wykorzystanie klastrów usługi 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 narzędzia Horizontal Pod Autoscaler, który skaluje liczbę replik zasobnikó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 odpowiedzialny za skalowanie w górę, ale także skalowanie w dół na podstawie ich 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 planowania zasobników.
- Oferuje konfigurowalne rejestrowanie wszelkich zmian wprowadzonych w zasobach procesora lub pamięci.
- Poprawia wykorzystanie zasobów klastra i zwalnia procesor i pamięć dla innych zasobników.
Ograniczenia i istotne zagadnienia
Podczas korzystania z narzędzia Autoscaler pionowych zasobników należy wziąć pod uwagę następujące ograniczenia i zagadnienia:
- VpA obsługuje maksymalnie 1000 zasobników skojarzonych z obiektami
VerticalPodAutoscaler
na klaster. - VpA może zalecić więcej zasobów niż dostępnych w klastrze, co uniemożliwia przypisanie zasobnika do węzła i uruchomienie go 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. W obiekcie można również ustawić maksymalne dozwolone zalecenia dotyczące zasobów na zasobnik
VerticalPodAutoscaler
. VpA nie może całkowicie przezwyciężyć problemu z niewystarczającym zasobem 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ń opartych na maszynie JVM z powodu ograniczonego wglądu w rzeczywiste użycie pamięci obciążenia.
- VpA nie obsługuje uruchamiania własnej implementacji vpA obok niej. Obsługiwana jest dodatkowa lub niestandardowa rekomendacja.
- Kontenery systemu Windows usługi 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 poza pamięcią i specyfikacje wdrożenia VPA oraz używa zbieranych informacji w celu udostępnienia zalecanych wartości dla żądań/limitów procesora CPU kontenera i pamięci.
- Aktualizator: aktualizator monitoruje zarządzane zasobniki, aby upewnić się, że ich żądania zasobów są ustawione poprawnie. Jeśli nie, usuwa te zasobniki, aby ich kontrolery mogły je ponownie utworzyć przy użyciu zaktualizowanych żądań.
- Kontroler wstępu VPA: Kontroler wstępu VPA ustawia prawidłowe żądania zasobów na nowych zasobnikach utworzonych lub utworzonych ponownie przez ich kontroler na podstawie działania aktualizatora.
Kontroler wstępu VPA
Kontroler wstępu VPA jest plikiem binarnym, który rejestruje się jako Mutating Admission Webhook. Po utworzeniu nowego zasobnika kontroler wstępu vpA pobiera żądanie z serwera interfejsu API i ocenia, czy istnieje zgodna konfiguracja VPA lub znajduje odpowiedni i używa bieżącego zalecenia do ustawiania żądań zasobów w zasobniku.
Autonomiczne zadanie, overlay-vpa-cert-webhook-check
, działa poza kontrolerem wstępu 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 autoskalowania pionowego zasobnika, najczęściej wdrożony, jest wstawiany dla każdego kontrolera, który ma mieć automatycznie obliczone 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. Po ponownym uruchomieniu lub w miejscu dostępne są aktualizacje żądań zasobników, które mogą być używane jako preferowany mechanizm aktualizacji w trybieAuto
. W trybieAuto
vpA eksmituje zasobnik, jeśli musi zmienić żądania zasobów. Może to spowodować ponowne uruchomienie 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 umowy VPA, zalecamy następujący wzorzec wdrażania podczas tworzenia aplikacji, aby zidentyfikować jego unikatowe właściwości wykorzystania zasobów, przetestuj vpa, aby sprawdzić, czy działa prawidłowo, i przetestować wraz 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 umożliwić testowanie i zapoznanie się z vpA.UpdateMode = "Off"
może uniknąć wprowadzenia błędnej konfiguracji, która może spowodować awarię. - Najpierw ustanów możliwość obserwacji, zbierając dane telemetryczne dotyczące rzeczywistego wykorzystania zasobów w danym okresie, co pomaga zrozumieć zachowanie i wszelkie oznaki problemów z zasobami kontenera i zasobnika, na które wpływają obciążenia uruchomione.
- 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ć narzędzie Do automatycznego skalowania pionowych zasobników w klastrze usługi AKS, zobacz Używanie narzędzia Do automatycznego skalowania pionowych zasobników w usłudze AKS.
Azure Kubernetes Service