Az NVIDIA bemutatta a Kubernetes-fürtök NodeWright csomagkezelőjét

Az NVIDIA bemutatta a NodeWright nevű, nyílt forráskódú Kubernetes-eszközt, amely a GPU-fürtök gazdagéprendszereinek konfigurálását és frissítését kezeli. A rendszer a munkaterhelések figyelembevételével, fokozatosan hajtja végre a csomagtelepítéseket és a szükséges megszakításokat.
- A NodeWright nyílt forráskódú, Kubernetes-natív csomagkezelő GPU-fürtökhöz.
- A módosítások előtt a rendszer ütemezhetetlenné teszi és szükség esetén kiüríti a csomópontokat.
- A csomagok kernelbeállításokat, biztonsági ügynököket és CVE-javításokat is kezelhetnek.
- A beépített ellenőrzések a Kubernetesben jelzik a sikertelen műveleteket.
- Az új csomópontok csak validálás után válhatnak ütemezhetővé.
A csomagkezelés a teljes fürtre kiterjed
Az NVIDIA Developer szeptember 23-án ismertette a NodeWrightot. A projekt az NVIDIA DSX OS nyílt forráskódú szoftverrétegének része, és az alapul szolgáló gazdagéprendszerek konfigurálására, karbantartására, valamint frissítésére szolgál.
A NodeWright Kubernetes-natív csomagkezelőként működik. A vállalat szerint úgy képzelhető el, mint az apt vagy a yum egy teljes fürtre kiterjesztett változata, amely tisztában van a futó munkaterhelésekkel és a kiesést korlátozó szabályokkal. A korábban Skyhook néven, az NVIDIA-nál éles környezetben használt projektet most ezen a néven mutatták be nyílt forráskódúként.
A hagyományos konfigurációkezelő eszközöket, például az Ansible-t és a Puppetet, egyedi gépek kezelésére tervezték. A NodeWright ezzel szemben Kubernetes-fürtökben kezeli a gazdagépszintű módosítások teljes életciklusát, a telepítéstől és konfigurálástól a frissítésen át az eltávolításig.
A módosítások a futó feladatokat is figyelembe veszik
A NodeWright három fő elemből áll: az operátorból, az egyéni erőforrásokból és a csomagokból. Az operátor Kubernetes-vezérlőként figyeli a NodeWright egyéni erőforrásait, majd kezeli a módosítások végrehajtását a célzott csomópontokon. A csomagok konténerképekben tartalmazzák a szkripteket, konfigurációkat és binárisokat, valamint az ellenőrzéshez szükséges eljárásokat.
Egy módosítás végrehajtásakor a rendszer először ütemezhetetlenné teszi a csomópontot, így új munkaterhelés nem kerül rá. Ezután megvárhatja a kritikus feladatok szabályos befejezését, majd kiüríti a csomópontot a PodDisruptionBudget szabályainak figyelembevételével. A csomag alkalmazása és konfigurálása után szükség esetén szolgáltatás-újraindítás vagy a csomópont újraindítása következik. A folyamat végén a csomópont ismét fogadhat munkaterheléseket.
A rendszergazdák címkékkel jelölhetik a nem megszakítható podokat. Ilyenkor a folyamat a várakozási szakaszban marad, amíg a védett munkaterhelés be nem fejeződik vagy tovább nem lép. A NodeWright a csomópont-kijelölőket, a taint és toleration beállításokat, valamint a PodDisruptionBudget szabályait is kezeli.
Kernelbeállítások, biztonsági javítások és ellenőrzések
A csomagok többféle gazdagépszintű műveletet végezhetnek. Beállíthatják a sysctl- és GRUB-paramétereket, konfigurálhatják a hibakiíratások gyűjtését, logikai köteteket hozhatnak létre, biztonsági ügynököket telepíthetnek és biztonsági réseket javíthatnak.
A NodeWright minden csomag állapotát és szemantikus verzióját nyilvántartja az egyes csomópontokon. Ennek alapján meg tudja különböztetni az új telepítést, a frissítést és a visszalépést. A csomagok függőségeket is megadhatnak, amelyek alapján a rendszer meghatározza a végrehajtás sorrendjét.
Az ellenőrzések a csomag életciklusának több pontjához kapcsolhatók, így a telepítés, a konfigurálás, a frissítés, az eltávolítás és a megszakítás utáni műveletek is validálhatók. Az NVIDIA példája szerint egy CVE-javító csomag ellenőrizheti, hogy a sérülékeny kernelmodul betöltve maradt-e, és hibaállapotba állíthatja a csomagot, ha igen.
Kontrollált út az új csomópontok üzembe állításához
A NodeWright az újonnan létrehozott csomópontok kezelését is támogatja. A fürtbe belépő gépek kezdetben Kubernetes-tainttel csatlakozhatnak, így még nem fogadnak munkaterheléseket. A szükséges csomagműveletek és ellenőrzések elvégzése után a taint eltávolítható.
Az NVIDIA leírása szerint ez ellenőrzött átmenetet hoz létre a létrehozott, konfigurált, validált és ütemezhető állapotok között. A csomagok egyéni erőforrásként jelennek meg, ezért a telepítésük a meglévő Kubernetes-eszközökkel, például a kubectl, a Helm, az Argo CD vagy a Flux használatával is kezelhető.
A NodeWright így a GPU-fürtök üzemeltetőinek egyetlen Kubernetes-környezetben ad eszközt a gazdagépek módosítására, a futó munkaterhelések és a csomópontok állapotának figyelembevételével.
NVIDIA Developer: Manage Kubernetes Node Fleets with NodeWright
