Konfigurace více uzlů a povolení škálování na nulu pomocí AKS

Dokončeno

Služba Azure Kubernetes Service umožňuje vytvořit různé fondy uzlů tak, aby konkrétní úlohy odpovídaly uzlům spuštěným v jednotlivých fondech uzlů. Proces porovnávání úloh s uzly vám umožní naplánovat využití výpočetních prostředků a optimalizovat náklady.

Řešení pro sledování dronů vaší společnosti je nasazené ve službě Azure Kubernetes Service (AKS) jako mnoho kontejnerových aplikací a služeb. Váš tým vyvinul novou službu prediktivního modelování, která zpracovává informace o letových drahách v extrémních povětrnostních podmínkách a vytváří optimální letové trasy. Tato služba vyžaduje podporu virtuálních počítačů využívajících grafický procesor (GPU) a spouští se jenom v konkrétních dnech v týdnu.

Chcete nakonfigurovat fond uzlů clusteru vyhrazený pro zpracování informací o letové dráze. Proces se spustí jenom několik hodin denně a chcete použít fond uzlů založený na GPU. Za uzly ale chcete platit, jenom když je používáte.

Pojďme se podívat, jak fondy uzlů a jak AKS používá uzly, a pak se podíváme, jak škálovat počet uzlů ve fondu uzlů.

Co je fond uzlů?

Fond uzlů popisuje skupinu uzlů se stejnou konfigurací v clusteru AKS. Tyto uzly obsahují základní virtuální počítače, na kterých běží vaše aplikace. V clusteru Kubernetes spravovaném v AKS můžete vytvořit dva typy fondů uzlů:

  • Fondy systémových uzlů

  • Fondy uzlů uživatele

Fondy systémových uzlů

Fondy systémových uzlů hostují důležité systémové pody, které tvoří řídicí rovinu clusteru. Fond systémových uzlů umožňuje používat jako operační systém uzlu jenom Linux a spouštět jenom linuxové úlohy. Uzly ve fondu systémových uzlů jsou rezervované pro systémové úlohy a obvykle se nepoužívají ke spouštění vlastních úloh. Každý cluster AKS musí obsahovat alespoň jeden fond systémových uzlů s alespoň jedním uzlem a pro uzly je nutné definovat velikosti základních virtuálních počítačů.

Fondy uzlů uživatele

Fondy uzlů uživatele podporují vaše úlohy a jako operační systém uzlu můžete vybrat Windows nebo Linux. Můžete také definovat velikosti základních virtuálních počítačů pro uzly a spouštět konkrétní úlohy. Vaše řešení pro sledování dronů má například službu dávkového zpracování, kterou nasadíte do fondu uzlů s konfigurací pro virtuální počítače pro obecné účely. Nová služba prediktivního modelování vyžaduje virtuální počítače využívající grafický procesor (GPU) s vyšší kapacitou. Rozhodnete se nakonfigurovat samostatný fond uzlů a nakonfigurovat ho tak, aby používal uzly s podporou GPU.

Počet uzlů ve fondu uzlů

V rámci fondu uzlů můžete nakonfigurovat až 100 uzlů. Počet uzlů, které se rozhodnete nakonfigurovat, je ale závislý na počtu podů spuštěných na jednotlivých uzlech.

Například ve fondu systémových uzlů je nezbytné nastavit maximální počet podů pro spuštění na jednom uzlu na 30. Tato hodnota zaručuje, že je k dispozici dostatek místa pro spuštění systémových podů kritických pro stav clusteru. Pokud počet podů překročí tuto minimální hodnotu, budou nové uzly ve fondu potřeba k naplánování dalších úloh. Z tohoto důvodu potřebuje mít fond systémových uzlů alespoň jeden uzel ve fondu. V produkčních prostředích doporučujeme mít ve fondu systémových uzlů minimálně tři uzly.

Fondy uzlů uživatele jsou navržené ke spouštění vlastních úloh a nemají požadavek na 30 podů. Fondy uzlů uživatele vám umožňují nastavit počet uzlů ve fondu na nulu.

Správa požadavku aplikace v clusteru AKS

Když v AKS zvýšíte nebo snížíte množství výpočetních prostředků v clusteru Kubernetes, škálujete ho. Můžete škálovat buď počet instancí úloh, které je potřeba spustit, nebo počet uzlů, na kterých se tyto úlohy spouštějí. Úlohy můžete škálovat v clusteru spravovaném službou AKS jedním ze dvou způsobů. První možností je škálovat pody nebo uzly ručně podle potřeby. Druhou možností je automatizace, ve které můžete pomocí horizontálního automatického škálování podů škálovat pody a automatické škálování clusteru pro škálování uzlů.

Postup ručního škálování fondu uzlů

Pokud spouštíte úlohy, které se spouštějí po určitou dobu v konkrétních známých intervalech, je ruční škálování velikosti fondu uzlů dobrým způsobem, jak řídit náklady na uzly.

Předpokládejme, že služba prediktivního modelování vyžaduje fond uzlů založený na GPU a spouští se každou hodinu v poledne. Fond uzlů můžete nakonfigurovat s konkrétními uzly využívajícími GPU a škálovat tento fond uzlů na nulový počet uzlů, když cluster nepoužíváte.

Tady je příklad příkazu az aks node pool add, který můžete použít k vytvoření fondu uzlů. Všimněte si parametru --node-vm-size, který pro uzly ve fondu určuje velikost virtuálního počítače využívajícího GPU Standard_NC6.

az aks nodepool add \
    --resource-group resourceGroup \
    --cluster-name aksCluster \
    --name gpunodepool \
    --node-count 1 \
    --node-vm-size Standard_NC6 \
    --no-wait

Jakmile je fond připravený, můžete pomocí příkazu az aks nodepool scale fond uzlů škálovat na nulový počet uzlů. Všimněte si, že parametr --node-count je nastavený na nulu. Tady je příklad tohoto příkazu:

az aks nodepool scale \
    --resource-group resourceGroup \
    --cluster-name aksCluster \
    --name gpunodepool \
    --node-count 0

Postup automatického škálování clusteru

Diagram that shows how the cluster autoscaler adds nodes and how the horizontal pod autoscaler adds pods.

Služba AKS využívá automatické škálování clusteru Kubernetes k automatickému škálování úloh. Cluster je možné škálovat pomocí dvou možností:

  • Horizontální automatické škálování podů

  • Automatické škálování clusteru

Pojďme se podívat na obě tyto možnosti. Začneme s horizontálním automatickým škálováním podů.

Horizontální automatické škálování podů

Pomocí horizontálního automatického škálování podů v Kubernetes můžete monitorovat požadavky na prostředky v clusteru a automaticky škálovat počet replik úloh.

Server metrik Kubernetes shromažďuje metriky paměti a procesoru z kontrolerů, uzlů a kontejnerů spuštěných v clusteru AKS. Jedním ze způsobů, jak k těmto informacím přistupovat, je použít rozhraní API metrik. Horizontální automatické škálování podů kontroluje rozhraní API metrik každých 30 sekund a rozhoduje, jestli vaše aplikace potřebuje více instancí, aby splňovala požadovanou poptávku.

Předpokládejme, že vaše společnost má také službu dávkového zpracování, která plánuje dráhy letů dronů. Všimněte si, že služba je zastaralá požadavky a vytváří backlog dodávek, což způsobuje zpoždění a frustraci zákazníků. Zvýšení počtu replik služby dávkového zpracování by mohlo umožnit včasné zpracování objednávek.

Pokud chcete tento problém vyřešit, nakonfigurujete horizontální automatické škálování podů tak, aby v případě potřeby zvýšil počet replik služby. Když se počet dávkových požadavků sníží, sníží se počet replik služeb.

Horizontální automatické škálování podů bude ale škálovat jenom pody v dostupných uzlech v nakonfigurovaných fondech uzlů clusteru.

Automatické škálování clusteru

Omezení prostředků se aktivuje, když horizontální automatické škálování podů nemůže naplánovat jiný pod na existujících uzlech ve fondu uzlů. Abyste mohli škálovat počet uzlů ve fondech uzlů clusteru v době omezení, musíte použít automatické škálování clusteru. Automatické škálování clusteru kontroluje definované metriky a škáluje počet uzlů směrem nahoru nebo dolů na základě požadovaných výpočetních prostředků.

Automatické škálování clusteru se používá společně s horizontálním automatickým škálováním podů.

Automatické škálování clusteru monitoruje události škálování směrem nahoru i dolů a umožňuje, aby cluster Kubernetes změnil počet uzlů ve fondu uzlů, když se změní poptávka po prostředcích.

U každého fondu uzlů nakonfigurujete jiná pravidla škálování. Můžete například chtít nakonfigurovat pouze jeden fond uzlů tak, aby umožňoval automatické škálování, nebo můžete fond uzlů nakonfigurovat tak, aby se škálovat pouze na určitý počet uzlů.

Důležité

Když ve fondu uzlů povolíte automatické škálování clusteru, ztratíte možnost škálovat počet uzlů na nulu. Místo toho můžete nastavit minimální počet na nulu, abyste ušetřili u prostředků clusteru.

Prověřte si své znalosti

1.

Předpokládejme, že vaše softwarové řešení má tři zásadní komponenty. První komponentou je webová aplikace. Druhou je služba, která zpracovává online objednávky. Třetí je služba pro vykreslování videí a analýzu, která se spouští jenom podle potřeby a která vyžaduje virtuální počítače využívající GPU. Pokud chcete optimalizovat náklady, kolik fondů uzlů byste nasadili v clusteru služby Azure Kubernetes Service (AKS) pro správu řešení?

2.

Doplňte následující tvrzení. Automatické škálování clusteru Kubernetes škáluje...