Umístění prostředků v Kubernetes operátora Azure Nexus

Instance Nexus operátora jsou nasazené v místním prostředí zákazníka. Každá instance se skládá z jednoho nebo více racků holých serverů.

Když uživatel vytvoří cluster Kubernetes Nexus (NKS), určí počet a skladovou jednotku (SKU) pro virtuální počítače, které tvoří řídicí rovinu Kubernetes a jeden nebo více fondů agentů. Fondy agentů jsou sada pracovních uzlů, na kterých běží kontejnerizované síťové funkce zákazníka.

Platforma Nexus zodpovídá za rozhodování o holých serverech, na kterém se spouští každý virtuální počítač NKS.

Jak platforma Nexus plánuje virtuální počítač clusteru Nexus Kubernetes

Nexus nejprve identifikuje sadu potenciálních holých serverů, které splňují všechny požadavky na prostředky skladové položky virtuálního počítače NKS. Pokud například uživatel zadal skladovou NC_G48_224_v1 položku virtuálního počítače pro fond agentů, nexus shromažďuje holé kovové servery, které mají dostupnou kapacitu pro 48 vCPU, 224Gi paměti RAM atd.

Nexus pak prozkoumá AvailabilityZones pole pro naplánovaný fond agentů nebo řídicí rovinu. Pokud toto pole není prázdné, Nexus filtruje seznam potenciálních holých serverů pouze na tyto servery v určených zónách dostupnosti (racky). Toto chování je obtížné plánování omezení. Pokud v filtrovaném seznamu nejsou žádné holé servery, Nexus neplánuje virtuální počítač NKS a cluster se nepodaří zřídit.

Jakmile Nexus identifikuje seznam potenciálních holých kovových serverů, na kterých se má umístit virtuální počítač NKS, Nexus po použití následujících pravidel řazení vybere jeden z holých serverů:

  1. Upřednostňujte holé servery v zónách dostupnosti (racky), které nemají virtuální počítače NKS z tohoto clusteru NKS. Jinými slovy, rozložte virtuální počítače NKS pro cluster NKS napříč zónami dostupnosti.

  2. Upřednostňujte holé servery v rámci jedné zóny dostupnosti (racku), které nemají jiné virtuální počítače NKS ze stejného clusteru NKS. Jinými slovy, rozložte virtuální počítače NKS pro cluster NKS mezi holé servery v rámci zóny dostupnosti.

  3. Pokud je skladová položka virtuálního počítače NKS buď NC_G48_224_v1 nebo NC_P46_224_v1, upřednostňujte holé servery, které už hostují NC_G48_224_v1 virtuální počítače nebo NC_P46_224_v1 virtuální počítače NKS z jiných clusterů NKS. Jinými slovy, seskupte extra velké virtuální počítače z různých clusterů NKS na stejných holých serverech. Toto pravidlo "bin pack" extra-large VMs, aby se snížila fragmentace dostupných výpočetních prostředků.

Příklady scénářů umístění

Následující části zvýrazňují chování, které by uživatelé nexus měli očekávat při vytváření clusterů NKS v prostředí Operátor Nexus.

Tip: Můžete zjistit, na který holý server byly vaše virtuální počítače NKS naplánovány, prozkoumáním nodes.bareMetalMachineId vlastnosti prostředku NKS KubernetesCluster nebo zobrazením sloupce Hostitel na webu Azure Portal v zobrazení uzlů clusteru Kubernetes.

Snímek obrazovky znázorňující holý server pro virtuální počítače NKS

Příklad prostředí Operator Nexus má tyto specifikace:

Prázdné prostředí

Vzhledem k prázdnému prostředí Operator Nexus s danou kapacitou vytvoříme tři různě velké clustery Nexus Kubernetes.

Clustery NKS mají tyto specifikace a pro účely tohoto cvičení předpokládáme, že uživatel vytvoří tyto tři clustery v následujícím pořadí:

Cluster A

  • Řídicí rovina, NC_G12_56_v1 skladová položka, tři počty
  • Fond agentů č. 1, NC_P46_224_v1 skladová položka, 24 count
  • Fond agentů č. 2, NC_G6_28_v1 skladová položka, šest počtů

Cluster B

  • Řídicí rovina, NC_G24_112_v1 skladová položka, pět počtů
  • Fond agentů č. 1, NC_P46_224_v1 skladová položka, 48 count
  • Fond agentů č. 2, NC_P22_112_v1 skladová položka, počet 24

Cluster C

  • Řídicí rovina, NC_G12_56_v1 skladová položka, tři počty
  • Fond agentů č. 1, NC_P46_224_v1 skladová položka, počet 12, AvailabilityZones = [1,4]

Tady je tabulka, která shrnuje, co by měl uživatel vidět po spuštění clusterů A, B a C v prázdném prostředí Operator Nexus.

Cluster Fond Skladová jednotka (SKU) Celkový počet Očekávané # racky Skutečné # racky Očekávané # virtuální počítače na rack Skutečné # virtuální počítače na rack
A Řídicí rovina NC_G12_56_v1 3 3 3 1 1
A Fond agentů č. 1 NC_P46_224_v1 24 8 8 3 3
A Fond agentů č. 2 NC_G6_28_v1 6 6 6 1 1
T Řídicí rovina NC_G24_112_v1 5 5 5 1 1
T Fond agentů č. 1 NC_P46_224_v1 48 8 8 6 6
T Fond agentů č. 2 NC_P22_112_v1 24 8 8 3 3
C Řídicí rovina NC_G12_56_v1 3 3 3 1 1
C Fond agentů č. 1 NC_P46_224_v1 12 2 2 6 6

K dispozici je osm racků, aby se virtuální počítače pro každý fond rozložily až do osmi racků. Fondy s více než osmi virtuálními počítači vyžadují více virtuálních počítačů na rack rozložených mezi různé holé servery.

Fond agentů C clusteru C #1 má 12 virtuálních počítačů omezených na AvailabilityZones [1, 4], takže má 12 virtuálních počítačů na 12 holých serverech, šest v každém racku 1 a 4.

Extra velké virtuální počítače ( NC_P46_224_v1 SKU) z různých clusterů jsou umístěné na stejných holých serverech (viz pravidlo č. 3 v části Jak platforma Nexus plánuje virtuální počítač clusteru Nexus Kubernetes).

Tady je vizualizace rozložení, které může uživatel vidět po nasazení clusterů A, B a C do prázdného prostředí.

Diagram znázorňující možné rozložení virtuálních počítačů po prvním nasazení

Poloplněné prostředí

Teď si projdeme příklad spuštění dalšího clusteru NKS, když je cílové prostředí napůl plné. Cílové prostředí je po nasazení clusterů A, B a C do cílového prostředí poloviční.

Cluster D má následující specifikace:

  • Řídicí rovina, NC_G24_112_v1 skladová položka, pět počtů
  • Fond agentů č. 1, NC_P46_224_v1 skladová položka, počet 24, AvailabilityZones = [7,8]
  • Fond agentů č. 2, NC_P22_112_v1 skladová položka, počet 24

Tady je tabulka, která shrnuje, co by měl uživatel vidět po spuštění clusteru D do prostředí Nexus s polovičním úplným operátorem, které existuje po spuštění clusterů A, B a C.

Cluster Fond Skladová jednotka (SKU) Celkový počet Očekávané # racky Skutečné # racky Očekávané # virtuální počítače na rack Skutečné # virtuální počítače na rack
D Řídicí rovina NC_G12_56_v1 5 5 5 1 1
D Fond agentů č. 1 NC_P46_224_v1 24 2 2 12 12
D Fond agentů č. 2 NC_P22_112_v1 24 8 8 3 3

Fond agentů clusteru D #1 má 12 virtuálních počítačů omezených na AvailabilityZones [7, 8], takže má 12 virtuálních počítačů na 12 holých serverech, šest v každém racku 7 a 8. Tyto virtuální počítače se dostanou na holé servery, které také obsahují extra velké virtuální počítače z jiných clusterů z důvodu pravidla řazení, které seskupuje extra velké virtuální počítače z různých clusterů na stejné holé servery.

Pokud virtuální počítač řídicí roviny clusteru D přistane na racku 7 nebo 8, je pravděpodobné, že jeden fond agentů clusteru D #1 přejde na stejný holý server jako virtuální počítač řídicí roviny clusteru D. Toto chování je způsobeno připnutím fondu agentů č. 1 na racky 7 a 8. Omezení kapacity v těchto rackech způsobují, že plánovač shromáždí virtuální počítač řídicí roviny a fond agentů č. 1 ze stejného clusteru NKS.

Fond agentů clusteru D #2 má tři virtuální počítače na různých holých serverech na každém z osmi racků. Omezení kapacity způsobila, že fond agentů clusteru D #1 je připnutý k rackům 7 a 8. Proto se virtuální počítače z fondu agentů clusteru D #1 a fondu agentů #2 kompletují na stejných holých serverech v rackech 7 a 8.

Tady je vizualizace rozložení, které může uživatel vidět po nasazení clusteru D do cílového prostředí.

Diagram znázorňující možné rozložení virtuálních počítačů po druhém nasazení

Téměř plné prostředí

V našem ukázkovém cílovém prostředí jsou čtyři z osmi racků blízko kapacity. Zkusme spustit jiný cluster NKS.

Cluster E má následující specifikace:

  • Řídicí rovina, NC_G24_112_v1 skladová položka, pět počtů
  • Fond agentů č. 1, NC_P46_224_v1 skladová položka, 32 count

Tady je tabulka se souhrnem toho, co by měl uživatel vidět po spuštění clusteru E do cílového prostředí.

Cluster Fond Skladová jednotka (SKU) Celkový počet Očekávané # racky Skutečné # racky Očekávané # virtuální počítače na rack Skutečné # virtuální počítače na rack
E Řídicí rovina NC_G24_112_v1 5 5 5 1 1
E Fond agentů č. 1 NC_P46_224_v1 32 8 8 4 3, 4 nebo 5

Fond agentů clusteru E č. 1 se rovnoměrně rozloží do všech osmi racků. Racky 7 a 8 budou mít tři virtuální počítače NKS z fondu agentů č. 1 místo očekávaných čtyř virtuálních počítačů NKS, protože po naplánování clusterů A až D neexistuje další kapacita pro virtuální počítače s extra velkými skladovými položkami v těchto rackech. Vzhledem k tomu, že racky 7 a 8 nemají kapacitu pro čtvrtou extra velkou skladovou položku ve fondu agentů č. 1, bude pět virtuálních počítačů NKS přistálo na dvou nejméně využitých rackech. V našem příkladu byly ty nejužitené racky racky 3 a 6.

Tady je vizualizace rozložení, které může uživatel vidět po nasazení clusteru E do cílového prostředí.

Diagram znázorňující možné rozložení virtuálních počítačů po třetím nasazení

Umístění během upgradu za běhu

Od dubna 2024 (verze Network Cloud 2304.1) se upgrady modulu runtime provádějí pomocí strategie racku po racku. Holé kovové servery v racku 1 jsou reimagovány všechny najednou. Proces upgradu se pozastaví, dokud se všechny holé servery úspěšně restartují a řeknou nexusu, že jsou připraveny přijímat úlohy.

Poznámka:

Operátoru Nexus je možné dát pokyn, aby znovu najednou znovu nastavil část holých serverů v racku, ale výchozí možností je reimage všechny holé kovové servery v racku paralelně.

Když je individuální holý server znovu zmagován, všechny úlohy spuštěné na holém serveru, včetně všech virtuálních počítačů NKS, ztráty napájení a připojení. Kontejnery úloh spuštěné na virtuálních počítačích NKS zase ztratí napájení a připojení. Po jedné minutě, kdy se k těmto kontejnerům úloh nedostanete, označí řídicí rovina Kubernetes clusteru NKS odpovídající pody jako poškozené. Pokud jsou pody členy nasazení nebo stavové sady, řídicí rovina Clusteru NKS se pokusí spustit náhradní pody, aby se počet pozorovaných replik nasazení nebo stavové sady vrátil do požadovaného počtu replik.

Nové pody se spustí jenom v případě, že je dostupná kapacita podu ve zbývajících virtuálních počítačích NKS, které jsou v pořádku. Od dubna 2024 (verze Network Cloud 2304.1) se nevytvořijí nové virtuální počítače NKS pro nahrazení virtuálních počítačů NKS, které byly na holém serveru, který je znovumagován.

Po úspěšném obnovení holého serveru a přijetí nových virtuálních počítačů NKS se virtuální počítače NKS, které byly původně na stejném holém serveru, znovu spusťte na nově obnoveném holém serveru. Kontejnery úloh se pak můžou naplánovat na tyto virtuální počítače NKS a potenciálně obnovit nasazení nebo stavové sady s pody na virtuálních počítačích NKS, které byly na holém serveru.

Poznámka:

Toto chování se může zdát uživateli, jako by se virtuální počítače NKS "nepřesunuly" z holého serveru, když se ve skutečnosti na nově obnoveném holém serveru spustila nová instance identického virtuálního počítače NKS, která si zachovala stejný název holého serveru jako před opětovným obnovením.

Osvědčené postupy

Při práci s operátorem Nexus mějte na paměti následující osvědčené postupy.

  • Vyhněte se zadávání AvailabilityZones pro fond agentů.
  • Spusťte větší clustery NKS před menšími clustery.
  • Před zmenšením velikosti skladové položky virtuálního počítače snižte počet fondů agentů.

Vyhněte se zadávání zón dostupnosti pro fond agentů.

Jak můžete zjistit z výše uvedených scénářů umístění, určení AvailabilityZones fondu agentů je primárním důvodem, proč by virtuální počítače NKS ze stejného clusteru NKS skončily na stejném holém serveru. Zadáním příkazu "připnete AvailabilityZones" fond agentů na podmnožinu racků a omezíte tak počet potenciálních holých serverů v této sadě racků pro ostatní clustery NKS a další virtuální počítače fondu agentů ve stejném clusteru NKS tak, aby se nastály.

Proto je naším prvním osvědčeným postupem vyhnout se zadávání AvailabilityZones pro fond agentů. Pokud potřebujete připnout fond agentů na sadu Zóny dostupnosti, nastavte tuto sadu co nejvíce tak, aby se minimalizovala nerovnováha, ke které může dojít.

Jedinou výjimkou tohoto osvědčeného postupu je situace, kdy máte ve fondu agentů jenom dva nebo tři virtuální počítače. Při upgradech za běhu můžete zvážit nastavení AvailabilityZones pro tento fond [1,3,5,7] agentů nebo [0,2,4,6] zvýšení dostupnosti.

Spouštění větších clusterů NKS před menšími clustery

Od dubna 2024 a verze Network Cloud 2403.1 jsou clustery NKS naplánované v pořadí, v jakém se vytvářejí. Pokud chcete co nejefektivněji zabalit cílové prostředí, doporučujeme vytvořit větší clustery NKS před menšími clustery. Stejně tak doporučujeme naplánovat větší fondy agentů před menšími fondy.

Toto doporučení je důležité pro fondy agentů pomocí extra velké NC_G48_224_v1 nebo NC_P46_224_v1 skladové položky. Plánování fondů agentů s největším počtem těchto extra velkých virtuálních počítačů SKU vytvoří větší sadu holých serverů, na kterých se můžou sloučit další extra velké virtuální počítače SKU z fondů agentů v jiných clusterech NKS.

Před snížením velikosti skladové položky virtuálního počítače snižte počet fondů agentů.

Pokud při spuštění clusteru nebo fondu agentů NKS narazíte na omezení kapacity, snižte počet fondu agentů před úpravou velikosti skladové položky virtuálního počítače. Pokud se například pokusíte vytvořit cluster NKS s fondem agentů s velikostí skladové NC_P46_224_v1 položky virtuálního počítače a počtem 24 a získat zpět chybu zřízení clusteru NKS kvůli nedostatečným prostředkům, můžete být lákaví použít velikost NC_P36_168_v1 skladové položky virtuálního počítače a pokračovat s počtem 24. Vzhledem k požadavkům na virtuální počítače úloh, které se mají sladit s jednou buňkou NUMA na holé straně serveru, je pravděpodobné, že stejný požadavek vede k podobným nedostatečným selháním prostředků. Místo zmenšení velikosti skladové položky virtuálního počítače zvažte snížení počtu fondu agentů na 20. Existuje větší šance, že se vaše žádost vejde do kapacity prostředků cílového prostředí a celkové nasazení má více jader procesoru, než kdybyste skladovou položku virtuálního počítače omezili.