Použití profilu automatického škálování ke konfiguraci automatického škálování clusteru v AKS povoleném službou Arc
Platí pro: AKS v Azure Stack HCI 22H2, AKS na Windows Serveru
Pomocí parametrů v objektu profilu automatického škálování můžete definovat události škálování v AKS povolené službou Arc. Profil automatického škálování clusteru má vliv na všechny fondy uzlů, které používají automatické škálování clusteru; Nemůžete nastavit profil automatického škálování na fond uzlů. Tento článek vysvětluje, jak automatické škálování funguje, popisuje výchozí hodnoty profilu automatického škálování a popisuje, jak nakonfigurovat a použít definici profilu.
Použití profilů
Profily automatického škálování clusteru mají následující atributy:
- Profily automatického škálování platí pro všechny fondy uzlů v clusteru.
- Profily jsou objekty na úrovni globálního nasazení.
- V AKS Arc je k dispozici více profilů.
- K danému clusteru je přiřazen pouze jeden profil. Profil se používá pro všechny fondy uzlů v clusteru.
- Změny profilu se použijí u všech fondů uzlů, které mají povolenou funkci automatického škálování.
Nastavení profilu
Výchozí profil se skládá z výchozích hodnot níže. Můžete aktualizovat následující nastavení.
Nastavení | Popis | Default value |
---|---|---|
min-node-count |
Minimální počet uzlů, ke kterému je tento profil přiřazený, může vertikálně snížit kapacitu fondu uzlů. | 0 |
max-node-count |
Maximální počet uzlů, ke kterému je přiřazený fond uzlů, se může vertikálně navýšit kapacitu. | 0 |
scan-interval |
Jak často se cluster znovu vyhodnocuje pro vertikální navýšení nebo snížení kapacity. | 10 sekund |
scale-down-delay-after-add |
Jak dlouho po vertikálním navýšení kapacity se hodnocení obnoví. | 10 minut |
scale-down-delay-after-delete |
Jak dlouho po odstranění uzlu se obnoví vyhodnocení vertikálního snížení kapacity. | scan-interval |
scale-down-delay-after-failure |
Jak dlouho po selhání vertikálního snížení kapacity se obnoví vyhodnocení vertikálního snížení kapacity. | 3 minuty |
scale-down-unneeded-time |
Jak dlouho by měl být uzel nepotřebný, než bude mít nárok na vertikální snížení kapacity. | 10 minut |
scale-down-unready-time |
Jak dlouho by měl být nepřečtený uzel nepotřebný, než bude mít nárok na vertikální snížení kapacity. | 20 minut |
scale-down-utilization-threshold |
Úroveň využití uzlu definovaná jako součet požadovaných prostředků vydělených kapacitou, pod kterou lze uzel považovat za vertikální snížení kapacity. | 0.5 |
max-graceful-termination-sec |
Maximální počet sekund, po které automatické škálování clusteru čeká na ukončení podu při pokusu o vertikální snížení kapacity uzlu | 600 s |
balance-similar-node-groups |
Detekuje podobné fondy uzlů a vyrovnává počet uzlů mezi nimi. | false (nepravda) |
expander |
Typ rozšíření fondu uzlů, který se má použít při vertikálním navýšení kapacity. Možné hodnoty: most-pods , random , least-waste , priority . |
random |
skip-nodes-with-local-storage |
Pokud je pravda, automatické škálování clusteru nikdy neodstraní uzly s pody s místním úložištěm, například EmptyDir nebo HostPath. | true |
skip-nodes-with-system-pods |
Pokud je pravda, automatické škálování clusteru nikdy neodstraní uzly s pody ( kube-system s výjimkou daemonSet nebo zrcadlových podů). |
true |
max-empty-bulk-delete |
Maximální počet prázdných uzlů, které lze odstranit současně. | 10 |
new-pod-scale-up-delay |
Ve scénářích, jako je nárazové nebo dávkové škálování, ve kterých nechcete, aby certifikační autorita fungovala před tím, než plánovač Kubernetes může naplánovat všechny pody, můžete certifikační autoritě říct, aby ignorovala neplánované pody, než bude mít určitý věk. | 0 sekund |
max-total-unready-percentage |
Maximální procento nepřečtených uzlů v clusteru Po překročení tohoto procenta certifikační autorita zastaví operace. | 45 % |
max-node-provision-time |
Maximální doba čekání automatického škálování na zřízení uzlu | 15 minut |
Poznámky ke konfiguraci automatického škálování
Nastavení v profilu automatického škálování clusteru můžete změnit pomocí rutiny PowerShellu Set-AksHciAutoScalerConfig .
Automatické škálování clusteru provádí rozhodnutí o škálování na základě minimálního a maximálního počtu nastaveného v každém fondu uzlů, ale po aktualizaci minimálního nebo maximálního počtu je nevynucuje. Například nastavení minimálního počtu 5, pokud je aktuální počet uzlů 3, nebude okamžitě škálovat fond až na 5.
Pokud má minimální počet ve fondu uzlů hodnotu vyšší než aktuální počet uzlů, nové minimální nebo maximální nastavení se respektuje, pokud existuje dostatek nenaplánovatelných podů, které vyžadují dva nové další uzly a aktivují událost automatického škálování. Po události škálování se respektují nová omezení počtu.
Můžete také nakonfigurovat podrobnější podrobnosti automatického škálování clusteru změnou výchozích hodnot v profilu automatického škálování v rámci celého clusteru. Například událost vertikálního snížení kapacity probíhá po dobu 10 minut, kdy se uzly nevyužívají. Pokud máte úlohy, které běží každých 15 minut, můžete změnit profil automatického škálování tak, aby po 15 nebo 20 minutách vertikálně snížil kapacitu nevyužitých uzlů. Pokud povolíte automatické škálování clusteru, použije se výchozí profil, pokud nezadáte jiná nastavení.
Uložení a načtení profilu automatického škálování
Profil automatického škálování můžete uložit a uložit do definice profilu jako soubor YAML. Soubor YAML můžete ručně upravit z textového editoru a můžete načíst uložené definice.
Uložení definice profilu
Kopii profilu uložíte jako soubor YAML pomocí kvactl
. Po definování profilu spusťte následující příkazy:
kvactl.exe autoscalerprofile get --name default --kubeconfig (Get-AksHciConfig).Kva.kubeconfig --outputformat=yaml > def.yaml
Úprava definice profilu
Definici profilu můžete upravit v souboru YAML. Def.yaml můžete například otevřít v poznámkovém bloku, editoru Visual Studio Code nebo v jiných textových editorech.
Načtení definice profilu
Definici profilu můžete načíst pomocí kvactl
uloženého souboru YAML. Spusťte následující příkaz:
kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig