Článek přečtěte do 5 min.

S potěšením oznamujeme, že uživatelé OCI Kubernetes Engine (OKE) mohou provádět opravy vadných pracovních uzlů. Díky této změně můžete restartovat nebo nahradit spouštěcí svazky spravovaných uzlů a samosprávných uzlů ve vašem clusteru, abyste vyřešili problémy se stavem uzlů. Tato nápravná opatření můžete provádět jak prostřednictvím rozhraní OKE API, tak nativně prostřednictvím rozhraní Kubernetes API a budou respektovat vaše konfigurace dostupnosti na úrovni Kubernetes.

Vyberte si cyklistickou akci

Pozadí uzlů

Vadné uzly mohou vést ke snížení výkonu a výpadkům aplikací. Dlouhodobým přístupem k řešení problémů na úrovni hostitele je jednoduše ukončit problematický uzel a nahradit ho novým, zdravým. V clusterech OKE lze toho dosáhnout na úrovni fondu uzlů cyklováním fondu uzlů nebo na úrovni uzlu odstraněním konkrétního pracovního uzlu. Ukončení nefunkčních uzlů a jejich nahrazení novými, zdravými je skvělý způsob, jak řešit většinu problémů ovlivňujících stav uzlů, ale v některých případech stojí za zvážení méně náročný přístup.

Alternativní možnosti opravy

Alternativy k ukončení a nahrazení instance, včetně restartu nebo nahrazení spouštěcího svazku uzlů, mohou zajistit rychlejší opravu problémů a kratší přerušení pracovní zátěže. Tyto alternativy jsou vhodné pro uživatele se stavovými úlohami, u kterých přesun stavu z jednoho počítače na druhý vyžaduje úsilí a pečlivou pozornost. Jsou také přínosem pro uživatele holých instancí, například pro ty s úlohami trénování modelů umělé inteligence, kteří se potřebují vyhnout dlouhé době cyklování potřebné ke spuštění nových instancí.

Restartovat

Restartování umožňuje restartovat instanci za účelem vyřešení chybových stavů. V kontextu Kubernetes restartování pracovního uzlu restartuje a zapne výpočetní instanci hostující uzel. Restartování uzlu restartuje instanci odesláním příkazu k vypnutí do operačního systému. Po vydání příkazu jsou vaše uzly zablokovány a vyčerpány, což Kubernetes brání v plánování nových úloh na uzel a stávající úlohy jsou přesunuty na nové uzly. OS má čas na vypnutí a instance se vypne a znovu zapne. Na rozdíl od ukončení a nahrazení se samotná instance neukončí a zachová si stejné OCID a síťovou adresu.

V některých případech stačí k vyřešení problémů s hostitelem jednoduché vypnutí a restartu. Například naši uživatelé s holými grafickými kartami se mohou setkat s poklesem výkonu úloh nebo s vysokými teplotami paměti grafické karty, což naznačuje tepelné omezení. Nebo hostitel hlásí menší počet grafických karet, než se očekávalo, nebo že hardware odešel ze sběrnice. Možná se vyskytly chyby NVLink, které signalizuje nespuštění NVIDIA Fabric Manageru nebo se nedaří spustit úlohy NCCL. Ve všech těchto případech je restart uzlu prvním krokem k nápravě problému.

Výměna spouštěcího svazku

Nahrazení spouštěcího svazku nabízí jednoduchý způsob, jak nahradit spouštěcí svazek instance hostující pracovní uzel. Pokud zjistíte problém způsobený posunem konfigurace spouštěcího svazku, můžete jej opravit provedením nahrazení spouštěcího svazku bez aktualizace vlastností fondu uzlů. Tímto způsobem budou spouštěcí svazky vašich uzlů nahrazeny nově zřízenými svazky, které mají stejné vlastnosti jako váš původní spouštěcí svazek. Po vydání příkazu jsou vaše uzly uzavřeny a vyprázdněny, instance se zastaví, spouštěcí svazek se vymění a instance se vrátí do stavu, ve kterém byla před procesem nahrazení svazku. Tento přístup je užitečný v situacích, kdy jste na uzlu provedli akci ke změně jeho původního stavu, například aktualizací verze ovladače GPU, a chcete vrátit instanci nebo instance do původního stavu.

Přístup zaměřený na Kubernetes

Oprava pomocí rozhraní Kubernetes API

Jedním z nejzajímavějších aspektů opravy uzlů je možnost provádět akce na pracovních uzlech podporovaných instancemi OCI Compute přímo prostřednictvím rozhraní Kubernetes API. Mluvili jsme s mnoha uživateli, kteří dávali přednost provádění těchto nových nápravných akcí přímo prostřednictvím rozhraní Kubernetes API. Místo nutnosti volat rozhraní OCI API pro restartování nebo nahrazení spouštěcího svazku uzlu, což je také podporovaná možnost, můžete tak učinit přímo prostřednictvím rozhraní Kubernetes API pomocí vlastních zdrojů a selektorů uzlů Kubernetes. Tato funkce vám pomůže vyhnout se rozdělenému zážitku z přepínání mezi rozhraními Kubernetes a OCI API a také se hodí k rozšiřitelnosti. Například uživatel s detektorem uzlů node-problem-detector, běžně používaným operačním nástrojem, který zviditelňuje problémy uzlů pro nadřazené vrstvy v zásobníku správy clusteru, nasazeným do svého clusteru, by mohl využít podmínky uzlu generované nástrojem pro nově dostupné akce uzlu k automatické nápravě problémů s uzly.

Doby odkladu pro vystěhování

Kromě zpřístupnění nových akcí prostřednictvím rozhraní Kubernetes API samotné akce také respektují osvědčené postupy Kubernetes pro dostupnost. Stejně jako u stávající možnosti ukončovat a nahrazovat uzly prostřednictvím rozhraní API pro cyklování uzlů a mazání uzlů, restartování a nahrazování svazku při spouštění nabízí možnost nastavit lhůtu pro vyřazení, tedy dobu, po kterou mohou být uzly uzavřeny a vyprázdněny, než s nimi bude provedena akce. Tato možnost respektuje veškeré rozpočty na narušení podů nastavené pro vaše úlohy, aby se předešlo přerušením, ke kterým by mohlo dojít, pokud by pod v době provedení akce na uzlu stále běžel. Pokud se některé pody nepodařilo vyřadit do konce lhůty pro vyřazení, máte možnost operaci buď zrušit, nebo v akci pokračovat.

maxUnavailable uzly

Při provádění akcí na více uzlech najednou, například při nahrazování spouštěcího svazku všech uzlů ve fondu uzlů, můžete přizpůsobit chování OKE tak, aby splňovalo vaše požadavky na dostupnost a náklady služeb. Můžete určit počet uzlů, které mohou být během operace upgradu současně nedostupné, což se označuje jako maxUnavailable. Čím větší počet uzlů povolíte, aby byly nedostupné najednou, tím více uzlů lze paralelně opravit. Čím větší počet uzlů však povolíte, aby byly nedostupné, tím více může být ohrožena dostupnost služeb. Můžete vybrat spravovaný fond uzlů a zvolit ukončení a nahrazení všech uzlů v něm a také nahrazení spouštěcích svazků všech uzlů v něm. V tuto chvíli nemůžete vybrat spravovaný fond uzlů a restartovat všechny uzly v něm. Uzly je nutné restartovat jednotlivě.

Komplexní podpora uzlů

Cílem této funkce bylo umožnit opravu všech typů uzlů, včetně spravovaných uzlů OKE a samosprávných uzlů, stejně jako uzlů podporovaných tvary virtuálních strojů OCI a tvary Bare Metal. Tradičně nejčastěji používaným typem uzlů OKE jsou uzly ve fondu spravovaných uzlů podporovaném virtuálními stroji. Uzly mimo tento typ, jako například tvar Bare Metal nebo samosprávné uzly, měly k dispozici méně provozních funkcí. Abychom poskytli jednotný zážitek napříč všemi typy uzlů, bylo pro nás důležité zajistit, aby všechny typy uzlů tyto nové provozní funkce využívaly.

Závěrem

Ukončení a nahrazení instance již není jediným způsobem řešení problémů se stavem uzlů. Restartování nebo nahrazení spouštěcího svazku uzlů může vyřešit velké množství problémů na úrovni hostitele s výhodou rychlejší opravy a kratšího přerušení pracovní zátěže ve srovnání s ukončením a nahrazením instancí. Tyto alternativní akce respektují nastavení dostupnosti Kubernetes a lze je spustit prostřednictvím rozhraní OCI API nebo přímo prostřednictvím rozhraní Kubernetes API, aby se zabránilo rozdělenému zážitku z přepínání mezi rozhraními Kubernetes a OCI API, a také se hodí pro rozšiřitelnost. Pro více informací nás kontaktujte.

Zdroj: Oracle