Umístění prostředků v Azure Operator Nexus Kubernetes

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ů serverů typu bare metal.

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 kovových serverů, které splňují všechny požadavky na prostředky produktu virtuálního serveru NKS podle SKU. Například pokud uživatel zadal SKU NC_G48_224_v1 virtuálního počítače pro svůj fond agentů, Nexus shromažďuje bare metal servery, které mají dostupnou kapacitu pro 48 vCPU, 224 GiB paměti RAM atd.

Nexus pak prozkoumá AvailabilityZones pole pro plánování fondu agentů nebo řídicí roviny. Pokud toto pole není prázdné, Nexus filtruje seznam potenciálních bare metal serverů pouze na servery v určených zónách dostupnosti (racky). Toto chování je tvrdé plánovací omezení. Pokud v filtrovaném seznamu nejsou k dispozici žádné fyzické servery, Nexus neplánuje virtuální počítač NKS a cluster se nepodaří vytvořit.

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 fyzické servery v zónách dostupnosti, 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, rozdělte virtuální počítače NKS pro cluster NKS mezi fyzické servery v rámci zóny dostupnosti.

  3. Pokud je SKU virtuálního počítače NKS buď NC_G48_224_v1, NC_P46_224_v1, NC_G56_224_v1 nebo NC_P54_224_v1, preferujte holé servery, které již hostují virtuální počítače NKS NC_G48_224_v1, NC_P46_224_v1, NC_G56_224_v1 nebo NC_P54_224_v1 z jiných clusterů NKS. Jinými slovy, seskupte mimořádně velké virtuální počítače z různých clusterů NKS na stejných fyzických serverech. Toto pravidlo "seskupuje" extra velké virtuální stroje (VMs), aby se snížila fragmentace dostupných výpočetních prostředků.

  4. Výše uvedené pravidlo "balení přihrádek" platí také pro menší virtuální počítače kromě velkých virtuálních počítačů. To pomáhá "zabalit" menší virtuální počítače z různých clusterů na stejné holé počítače, což zvyšuje celkovou efektivitu umístění. Například uzly řídicí roviny a malé SKU uzly (fond agentů) z různých clusterů se společně sdružují.

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ý bare metal server byly vaše virtuální počítače NKS naplánovány, vyšetřením vlastnosti nodes.bareMetalMachineId prostředku NKS KubernetesCluster nebo zobrazením sloupce "Host" v Azure Portal v zobrazení uzlů Kubernetes clusteru.

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:

  • Osm regálů s 16 fyzickými servery bez operačního systému
  • Každý holý server obsahuje dvě buňky NUMA (Non-Uniform Memory Access ).
  • Každá buňka NUMA poskytuje 48 procesorů a 224 GiB RAM.

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í:

Klastr A

  • Řídicí rovina, NC_G12_56_v1 skladová položka, tři počty
  • Agent pool č. 1, NC_P46_224_v1 skladová položka, 24 kusů
  • Sada agentů č. 2, NC_G6_28_v1 SKU, šest jednotek

Klastr 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

Kluster C

  • Řídicí rovina, NC_G12_56_v1 skladová položka, tři počty
  • Pool agentů č. 1, NC_P46_224_v1 SKU, 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 Bazén skladová jednotka (SKU) Celkový počet Očekávaný počet racků Skutečné # racky Očekávaný počet virtuálních strojů na jeden rack Skutečný počet virtuálních strojů v racku
A Řídicí rovina NC_G12_56_v1 3 3 3 1 1
A Pool agentů č. 1 NC_P46_224_v1 dvacet čtyři 8 8 3 3
A Pool agentů č. 2 NC_G6_28_v1 6 6 6 1 1
B Řídicí rovina NC_G24_112_v1 5 5 5 1 1
B Pool agentů č. 1 NC_P46_224_v1 48 8 8 6 6
B Pool agentů č. 2 NC_P22_112_v1 dvacet čtyři 8 8 3 3
C Řídicí rovina NC_G12_56_v1 3 3 3 1 1
C Pool 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ý pool rozložily do až osmi racků. Fondy s více než osmi virtuálními počítači vyžadují několik virtuálních počítačů na racku rozložených mezi různé fyzické servery.

Fond agentů C clusteru #1 má 12 virtuálních počítačů omezených na zóny dostupnosti [1, 4], takže má 12 virtuálních počítačů na 12 fyzický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 baremetal serverech (viz pravidlo č. 3 v 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í

Polozaplně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 polovičně zaplně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

Zde je tabulka shrnující, co by měl uživatel vidět po spuštění Clusteru D do prostředí Operator Nexus, které je zpola naplněné a které existuje po spuštění Clusterů A, B a C.

Cluster Bazén skladová jednotka (SKU) Celkový počet Očekávaný počet racků Skutečné # racky Očekávaný počet virtuálních strojů na jeden rack Skutečný počet virtuálních strojů v racku
D Řídicí rovina NC_G12_56_v1 5 5 5 1 1
D Pool agentů č. 1 NC_P46_224_v1 dvacet čtyři 2 2 12 12
D Pool agentů č. 2 NC_P22_112_v1 dvacet čtyři 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 se virtuální počítač řídicí roviny clusteru D nachází na racku 7 nebo 8, je pravděpodobné, že jeden virtuální počítač fondu agentů clusteru D #1 se nachází na stejném fyzickém serveru jako tento virtuální počítač řídicí roviny clusteru D. Toto chování je způsobeno "připnutím" Agent Poolu č. 1 k rackům 7 a 8. Omezení kapacity v těchto rackech způsobují, že plánovač soustředí virtuální počítač řídicí plochy a virtuální počítač z fondu agentů č. 1 ze stejného clusteru NKS.

Pool agentů clusteru D #2 má tři virtuální stroje na různých fyzických serverech v každém z osmi racků. Omezení kapacity způsobila, že fond agentů clusteru D č. 1 je přiřazený k rackům 7 a 8. Proto jsou virtuální počítače z fondu agentů #1 a fondu agentů #2 clusteru D umístěny společně na stejných fyzický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 příkladovém cílovém prostředí jsou čtyři z osmi racků blízko plného vyčerpání 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ů
  • Skupina agentů č. 1, NC_P46_224_v1 SKU, 32 počet

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 Bazén skladová jednotka (SKU) Celkový počet Očekávaný počet racků Skutečné # racky Očekávaný počet virtuálních strojů na jeden rack Skutečný počet virtuálních strojů v racku
E Řídicí rovina NC_G24_112_v1 5 5 5 1 1
E Pool agentů č. 1 NC_P46_224_v1 32 8 8 4 3, 4 nebo 5

Fond agentů clusteru E č. 1 se nerovnomě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 nejméně využívané stojany 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 běžícího systému

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 bare metal servery úspěšně restartují a neoznámí Nexusu, že jsou připraveny přijímat úlohy.

Poznámka:

Operátoru Nexus je možné dát pokyn, aby znovu instaloval systém pouze na část serverů na holém železe v racku najednou, ale výchozí možností je paralelně znovu instalovat systém na všechny servery na holém železe v racku.

Když je individuální bare metal server přeinstalován, všechny úlohy spuštěné na tomto serveru, včetně všech virtuálních počítačů NKS, ztratí 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 není možné dosáhnout na tyto pracovní kontejnery, označí Kubernetes Control Plane NKS Clusteru příslušné Pody jako nezdravé. 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é Pod se spustí jenom v případě, že je dostupná kapacita pro Pod ve zbývajících zdravých virtuálních počítačích NKS. Od dubna 2024 (verze Network Cloud 2304.1) se nevytvoří nové virtuální počítače NKS pro nahrazení virtuálních počítačů NKS, které byly na serveru na holém hardwaru, který je přeinstalován.

Po úspěšném obnovení serveru bez operačního systému 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 serveru bez operačního systému, znovu spustí na nově obnoveném serveru bez operačního systému. 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 Agent Pool.
  • 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í, specifikace fondu agentů AvailabilityZones je primárním důvodem, proč by se virtuální počítače NKS ze stejného clusteru NKS nacházely na stejném fyzickém serveru. Specifikací AvailabilityZones "přiřadíte" fond agentů k podmnožině racků, čímž omezíte počet potenciálních serverů bare-metal v této sadě racků pro ostatní clustery NKS a další virtuální počítače fondů agentů ve stejném clusteru NKS, na nichž mohou být nasazeny.

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ů k sadě zón dostupnosti, udělejte tuto sadu co největší, aby se minimalizovala nerovnováha, která může nastat.

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. Pro zvýšení dostupnosti během upgradech za běhu můžete zvážit nastavení fondu agentů na AvailabilityZones na [1,3,5,7] nebo na [0,2,4,6].

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

Od dubna 2024 s vydáním Network Cloud verze 2403.1 jsou clustery NKS naplánovány v pořadí, v jakém byly vytvořeny. 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ší pooly agentů před menšími pooly agentů.

Toto doporučení je důležité pro skupiny agentů používající extra-velké NC_G48_224_v1 nebo NC_P46_224_v1 SKU. 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 zmenšením velikosti SKU virtuálního počítače snižte počet v fondu 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í SKU virtuálního počítače NC_P46_224_v1 a počtem 24, a zobrazí se vám chyba zřízení clusteru NKS kvůli nedostatečným prostředkům, můžete být v pokušení použít velikost SKU virtuálního počítače NC_P36_168_v1 a pokračovat s počtem 24. Vzhledem k požadavkům na sladění virtuálních počítačů úloh s jednou buňkou NUMA na holém serveru pravděpodobně stejný požadavek povede k podobným selháním z důvodu nedostatku 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.

Skladové položky virtuálních počítačů optimalizovaných pro paměť

NC_E110_448_v1 (běžící na hardwarových uzlech Sapphire Rapids) nebo NC_E94_448_v1 využívá všechny zákaznicky dostupné prostředky fyzického stroje. NC_E70_336_v1 využití 75 % prostředků, které jsou zákazníkovi dostupné, nicméně, není zaručeno, že to budou přesně jedna celá a jedna polovina NUMA buňky. To znamená, že NC_G24_112_v1 může nebo nemusí být schopen se naplánovat na počítači, na kterém běží NC_E70_336_v1, v závislosti na tom, jak je NC_E70_336_v1 VM naplánován napříč buňkami NUMA.

Varianty virtuálních počítačů optimalizované pro úložiště

NC_L46_224_v1 a NC_L54_224_v1 jsou skladové položky navržené tak, aby zvýšily využití a škálovatelnost místního úložiště tím, že umožňují uzlům Kubernetes nexus přidělit až 1,6 TiB místa na disku. To je podpora úloh, které vyžadují více než typické 300 GiB přidělené jinými skladovými položkami.