Używanie profilu autoskalowania do konfigurowania skalowania automatycznego klastra w usłudze AKS włączonej przez usługę Arc
Dotyczy: AKS na platformie Azure Local 22H2, AKS na platformie Windows Server
Możesz użyć parametrów w obiekcie profilu autoskalowania, aby zdefiniować zdarzenia skalowania w usłudze AKS włączone przez usługę Arc. Profil narzędzia do automatycznego skalowania klastra ma wpływ na wszystkie pule węzłów korzystające z narzędzia do automatycznego skalowania klastra; nie można ustawić profilu skalowania automatycznego na pulę węzłów. W tym artykule wyjaśniono, jak działa narzędzie do skalowania automatycznego, opisuje domyślne wartości profilów skalowania automatycznego i opisuje sposób konfigurowania i używania definicji profilu.
Korzystanie z profilów
Profile skalowania automatycznego klastra mają następujące atrybuty:
- Profile skalowania automatycznego mają zastosowanie do wszystkich pul węzłów w klastrze.
- Profile to obiekty na poziomie wdrożenia globalnego.
- W usłudze AKS Arc jest dostępnych wiele profilów.
- Tylko jeden profil jest przypisany do danego klastra. Profil jest używany dla wszystkich pul węzłów w klastrze.
- Zmiany w profilu są stosowane do wszystkich pul węzłów z włączoną funkcją autoskalowania.
Ustawienia profilu
Profil domyślny składa się z poniższych wartości domyślnych. Możesz zaktualizować następujące ustawienia.
Ustawienie | opis | Domyślna wartość |
---|---|---|
min-node-count |
Minimalna liczba węzłów, do której przypisano ten profil, może być skalowana w dół. | 0 |
max-node-count |
Maksymalna liczba węzłów, do których przypisano ten profil, może być skalowana w górę. | 1 |
scan-interval |
Częstotliwość ponownego oceny klastra w celu skalowania w górę lub w dół. | 10 sekund |
scale-down-delay-after-add |
Jak długo po skalowaniu w górę wznawia się ocena skalowania w dół. | 10 min |
scale-down-delay-after-delete |
Jak długo po usunięciu węzła, które są wznawiane skalowanie w dół oceny. | scan-interval |
scale-down-delay-after-failure |
Jak długo po awarii skalowania w dół zostanie wznowione skalowanie w dół oceny. | 3 minuty |
scale-down-unneeded-time |
Jak długo węzeł powinien być niepotrzebny, zanim kwalifikuje się do skalowania w dół. | 10 min |
scale-down-unready-time |
Jak długo nieczytelny węzeł powinien być niepotrzebny, zanim kwalifikuje się do skalowania w dół. | 20 minut |
scale-down-utilization-threshold |
Poziom wykorzystania węzła zdefiniowany jako suma żądanych zasobów podzielonych przez pojemność, poniżej którego węzeł można rozważyć pod kątem skalowania w dół. | 0.5 |
max-graceful-termination-sec |
Maksymalna liczba sekund, przez które narzędzie do automatycznego skalowania klastra czeka na zakończenie działania zasobnika podczas próby skalowania węzła w dół. | 600 sekund |
balance-similar-node-groups |
Wykrywa podobne pule węzłów i równoważy liczbę węzłów między nimi. | fałsz |
expander |
Typ ekspandera puli węzłów, który ma być używany w skali w górę. Możliwe wartości: most-pods , , random least-waste , priority . |
random |
skip-nodes-with-local-storage |
Jeśli wartość true, narzędzie do automatycznego skalowania klastra nigdy nie usuwa węzłów z zasobnikami z magazynem lokalnym, na przykład EmptyDir lub HostPath. | true |
skip-nodes-with-system-pods |
Jeśli wartość true, narzędzie do automatycznego skalowania klastra nigdy nie usuwa węzłów z zasobnikami kube-system (z wyjątkiem elementu DaemonSet lub dublowania zasobników). |
true |
max-empty-bulk-delete |
Maksymalna liczba pustych węzłów, które można usunąć w tym samym czasie. | 10 |
new-pod-scale-up-delay |
W przypadku scenariuszy, takich jak skalowanie wsadowe/burst,where you don't want the CA to act to act before the Kubernetes scheduler can schedule the all the pods, you can tell the CA to ignore unscheduled pods before they'a certain age. | 0 sekund |
max-total-unready-percentage |
Maksymalna wartość procentowa nieprzeczytanych węzłów w klastrze. Po przekroczeniu tej wartości procentowej urząd certyfikacji zatrzymuje operacje. | 45% |
max-node-provision-time |
Maksymalny czas oczekiwania autoskalatora na aprowizowanie węzła. | 15 min |
Uwagi dotyczące konfiguracji skalowania automatycznego
Ustawienia w profilu narzędzia do automatycznego skalowania klastra można zmienić przy użyciu polecenia cmdlet Set-AksHciAutoScalerConfig programu PowerShell.
Narzędzie do automatycznego skalowania klastra podejmuje decyzje dotyczące skalowania na podstawie minimalnych i maksymalnych liczb ustawionych w każdej puli węzłów, ale nie wymusza ich po zaktualizowaniu minimalnych lub maksymalnych liczb. Na przykład ustawienie minimalnej liczby 5, gdy bieżąca liczba węzłów wynosi 3, nie spowoduje natychmiastowego skalowania puli do 5.
Jeśli minimalna liczba węzłów w puli węzłów ma wartość wyższą niż bieżąca liczba węzłów, nowe minimalne lub maksymalne ustawienia są przestrzegane, gdy istnieje wystarczająca liczba zasobników, które wymagają dwóch nowych dodatkowych węzłów i wyzwalają zdarzenie skalowania automatycznego. Po zdarzeniu skalowania są przestrzegane nowe limity liczby.
Można również skonfigurować bardziej szczegółowe szczegóły automatycznego skalowania klastra, zmieniając wartości domyślne w profilu skalowania automatycznego w całym klastrze. Na przykład zdarzenie skalowania w dół odbywa się po tym, jak węzły są niedostatecznie wykorzystywane przez 10 minut. Jeśli masz obciążenia uruchamiane co 15 minut, możesz zmienić profil skalowania automatycznego, aby skalować w dół w dół węzły po 15 lub 20 minutach. Po włączeniu automatycznego skalowania klastra zostanie użyty domyślny profil, chyba że określisz inne ustawienia.
Zapisywanie i ładowanie profilu autoskalatora
Profil autoskalatora można zapisywać i przechowywać w definicji profilu jako plik YAML. Możesz ręcznie edytować plik YAML z poziomu edytora tekstów i załadować zapisane definicje.
Zapisywanie definicji profilu
Kopię profilu należy zapisać jako plik YAML przy użyciu polecenia kvactl
. Po zdefiniowaniu profilu uruchom następujące polecenia:
kvactl.exe autoscalerprofile get --name default --kubeconfig (Get-AksHciConfig).Kva.kubeconfig --outputformat=yaml > def.yaml
Edytowanie definicji profilu
Definicję profilu można edytować w pliku YAML. Możesz na przykład otworzyć plik def.yaml w notatniku, programie Visual Studio Code lub innych edytorach tekstów.
Ładowanie definicji profilu
Definicję profilu można załadować przy użyciu kvactl
zapisanego pliku YAML. Uruchom następujące polecenie:
kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig