Sdílet prostřednictvím


Vertikální automatické škálování podů ve službě Azure Kubernetes Service (AKS)

Tento článek obsahuje přehled použití vertikálního automatického škálování podů (VPA) ve službě Azure Kubernetes Service (AKS), která je založená na opensourcové verzi Kubernetes .

Při konfiguraci automaticky nastaví požadavky na prostředky a limity pro kontejnery na každou úlohu na základě předchozího využití. VPA uvolní procesor a paměť pro ostatní pody a pomáhá zajistit efektivní využití clusterů AKS. Vertikální automatické škálování podů poskytuje doporučení pro využití prostředků v průběhu času. Pokud chcete spravovat náhlé zvýšení využití prostředků, použijte horizontální automatické škálování podů, které podle potřeby škáluje počet replik podů.

Zaměstnanecké výhody

Vertikální automatické škálování podů nabízí následující výhody:

  • Analyzuje a upravuje prostředky procesoru a paměti tak, aby byly správné velikosti aplikací. VPA zodpovídá nejen za vertikální navýšení kapacity, ale také za vertikální snížení kapacity na základě využití prostředků v průběhu času.
  • Pod s režimem škálování nastaveným na automatické nebo opětovné vytvoření se vyřadí, pokud potřebuje změnit požadavky na prostředky.
  • Omezení procesoru a paměti pro jednotlivé kontejnery můžete nastavit zadáním zásad prostředků.
  • Zajišťuje, že uzly mají správné prostředky pro plánování podů.
  • Nabízí konfigurovatelné protokolování všech úprav provedených u prostředků procesoru nebo paměti.
  • Zlepšuje využití prostředků clusteru a uvolní procesor a paměť pro ostatní pody.

Omezení a důležité informace

Při použití vertikálního automatického škálování podů zvažte následující omezení a důležité informace:

  • VPA podporuje maximálně 1 000 podů přidružených k VerticalPodAutoscaler objektům na cluster.
  • VPA může doporučit více prostředků, než je k dispozici v clusteru, což brání přiřazení podu k uzlu a spuštění kvůli nedostatečným prostředkům. Toto omezení můžete překonat nastavením limitRange na maximální dostupné prostředky na obor názvů, což zajistí, že pody nebudou žádat o více prostředků, než je zadáno. V objektu VerticalPodAutoscaler můžete také nastavit maximální povolená doporučení pro prostředky na pod. VPA nemůže zcela překonat problém s nedostatečným prostředkem uzlu. Rozsah omezení je pevný, ale využití prostředků uzlu se dynamicky mění.
  • Nedoporučujeme používat VPA s horizontálním automatickým škálováním podů (HPA), který se škáluje na základě stejných metrik využití procesoru a paměti.
  • Doporučovací nástroj VPA ukládá pouze až osm dní historických dat.
  • VPA nepodporuje úlohy založené na JVM kvůli omezenému přehledu o skutečném využití paměti úlohy.
  • VPA nepodporuje spuštění vlastní implementace VPA spolu s ním. Podpora dalšího nebo přizpůsobeného doporučovače
  • Kontejnery AKS pro Windows se nepodporují.

Přehled VPA

Objekt VPA se skládá ze tří komponent:

  • Doporučení: Doporučovací modul monitoruje aktuální a předchozí spotřebu prostředků, včetně historie metrik, událostí nedostatku paměti (OOM) a specifikací nasazení VPA a používá informace, které shromažďuje, k poskytnutí doporučených hodnot pro požadavky nebo limity procesoru kontejneru a paměti.
  • Aktualizátor: Aktualizátor monitoruje spravované pody, aby se zajistilo správné nastavení požadavků na prostředky. Pokud ne, odebere tyto pody, aby je jejich kontrolery mohly znovu vytvořit s aktualizovanými požadavky.
  • Kontroler přístupu VPA: Kontroler přístupu VPA nastavuje správné požadavky na prostředky na nových podech vytvořených nebo znovu vytvořených kontrolerem na základě aktivity updateru.

Kontroler přístupu VPA

Řadič přístupu VPA je binární soubor, který se zaregistruje jako webhook mutating admission. Po vytvoření nového podu získá kontroler přístupu VPA požadavek ze serveru rozhraní API a vyhodnotí, jestli existuje odpovídající konfigurace analyzátoru VPA nebo najde odpovídající konfiguraci a použije aktuální doporučení k nastavení žádostí o prostředky v podu.

Samostatná úloha se overlay-vpa-cert-webhook-checkspouští mimo kontroler přístupu VPA. Úloha overlay-vpa-cert-webhook-check vytvoří a obnoví certifikáty a zaregistruje kontroler přístupu VPA jako .MutatingWebhookConfiguration

Režimy operací objektů VPA

Prostředek vertikálního automatického škálování podů, který se nejčastěji nasadí, se vloží pro každý kontroler, který má automaticky vypočítat požadavky na prostředky.

Existují čtyři režimy, ve kterých funguje analyzátor VPA:

  • Auto: Při vytváření podů přiřazuje VPA požadavky na prostředky a aktualizuje stávající pody pomocí upřednostňovaného mechanismu aktualizace. Auto, který je ekvivalentní Recreate, je výchozí režim. Jakmile jsou k dispozici aktualizace požadavků podů bez restartování nebo na místě, můžete je použít jako upřednostňovaný mechanismus aktualizace v Auto režimu. Auto V režimu VPA vyřadí pod, pokud potřebuje změnit požadavky na prostředky. Může to způsobit restartování podů najednou, což může způsobit nekonzistence aplikací. V této situaci můžete omezit restartování a zachovat konzistenci pomocí souboru PodDisruptionBudget.
  • Recreate: VPA při vytváření podů přiřazuje žádosti o prostředky a aktualizuje stávající pody tak, že je vyřadí, když se požadované prostředky výrazně liší od nových doporučení (pokud je definováno dodržování plánu PodDisruptionBudget). Tento režim byste měli použít jenom v případě, že potřebujete zajistit, aby se pody restartovaly vždy, když se požadavek na prostředek změní. V opačném případě doporučujeme používat Auto režim, který po zpřístupnění využívá aktualizace bez restartování.
  • Initial: VPA při vytváření podů přiřazuje pouze žádosti o prostředky. Neaktualizuje existující pody. Tento režim je užitečný pro testování a pochopení chování VPA, aniž by to mělo vliv na spuštěné pody.
  • Off: VPA automaticky nemění požadavky na prostředky podů. Doporučení se počítají a je možné je zkontrolovat v objektu VPA.

Model nasazení pro vývoj aplikací

Pokud neznáte model nasazení VPA, doporučujeme při vývoji aplikací identifikovat jedinečné charakteristiky využití prostředků, otestovat VPA, jestli funguje správně, a otestovat spolu s dalšími komponentami Kubernetes, abyste optimalizovali využití prostředků clusteru:

  1. Nastavte UpdateMode = "Off" v produkčním clusteru a spusťte VPA v režimu doporučení, abyste mohli testovat a získat znalosti OPA. UpdateMode = "Off" může zabránit zavedení chybné konfigurace, která může způsobit výpadek.
  2. Nejprve vytvořte pozorovatelnost shromažďováním telemetrie skutečného využití prostředků v daném časovém období, což vám pomůže pochopit chování a případné známky problémů z prostředků kontejnerů a podů ovlivněných úlohami, které na nich běží.
  3. Seznamte se s daty monitorování, abyste porozuměli charakteristikám výkonu. Na základě tohoto přehledu nastavte požadované požadavky nebo limity odpovídajícím způsobem a pak v dalším nasazení nebo upgradu.
  4. Nastavte updateMode hodnotu na Autohodnotu , Recreatenebo Initial v závislosti na vašich požadavcích.

Další kroky

Informace o nastavení vertikálního automatického škálování podů v clusteru AKS najdete v tématu Použití vertikálního automatického škálování podů v AKS.