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ů:
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.
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.
Pokud je skladová položka virtuálního počítače NKS buď
NC_G48_224_v1
,NC_G56_224_v1
NC_P46_224_v1
nebo preferujteNC_P54_224_v1
holé servery, které už jsou v doměNC_G48_224_v1
,NC_G56_224_v1
NC_P46_224_v1
neboNC_P54_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ů.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é uzly SKU (fond agentů) z různých clusterů affine společně.
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.
Příklad prostředí Operator Nexus má tyto specifikace:
- Osm racků 16 holých serverů
- Každý holý server obsahuje dvě buňky NUMA (Non-Uniform Memory Access ).
- Každá buňka NUMA poskytuje 48 procesorů a 224Gi 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í:
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í.
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í.
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í.
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.
Skladové položky virtuálních počítačů optimalizovaných pro paměť
NC_E110_448_v1
(spuštěné nad hardwarovými uzly Sapphire Rapids) nebo NC_E94_448_v1
spotřebovávat všechny prostředky dostupné zákazníkem fyzického počítače. NC_E70_336_v1
spotřebovávat 75 % prostředků dostupných zákazníkem však není zaručeno, že to bude přesně jedna plná a polovina buněk NUMA.
To znamená, že NC_G24_112_v1
na počítači, na kterém běží NC_E70_336_v1
virtuální počítač, může nebo nemusí být schopen naplánovat v závislosti na tom, jak NC_E70_336_v1
je virtuální počítač naplánovaný napříč buňkami NUMA.