Mesterséges intelligencia, magyarul.
Az eredeti közleményekből.

A Krea saját módszerrel tereli a GPU-s feladatokat Kubernetesben

2026. augusztus 7.Forrás: Krea
A Krea saját módszerrel tereli a GPU-s feladatokat Kubernetesben
Kép: Krea

A Krea a Kubernetes alapértelmezett ütemezőjére építve alakított ki rendszert a GPU-s munkafolyamatok kezelésére. A megoldás a klaszteren belül tartja a feladatokat, és csak akkor irányítja őket a Virtual Kubelet által elérhető külső kapacitásra, amikor a belső erőforrások elfogytak.

A lényeg röviden
  • A Krea a Kubernetes alapértelmezett ütemezőjét használja, külső ütemező bevezetése nélkül.
  • A Prometheus és a PromQL alapján dinamikusan taintelik a Virtual Kubelet-csomópontot.
  • A Descheduler fokozatosan távolítja el a már nem toleráló podokat.
  • A Kueue négy sorral és GPU-alapú prioritással kezeli a munkaterheléseket.
  • A rendszer pontossága függ attól, hogy a PromQL-lekérdezés mennyire tükrözi a klaszter valós állapotát.

A Kubernetes alapértelmezett ütemezőjét alakították a céljaikhoz

A Krea augusztus 7-én közzétett mérnöki bejegyzésében mutatta be, hogyan ütemezi GPU-s munkaterheléseit. A vállalat korábbi írása azt ismertette, miként tudnak bárhol következtetési feladatokat futtatni a Virtual Kubelet projekt segítségével. A mostani bejegyzés a rendszer másik felére, a klaszter erőforrásainak használatára koncentrál.

A Krea szerint több megközelítés módosítja a Kubernetes ütemezőjét, például konfigurációval vagy bővítményekkel, mások pedig teljesen lecserélik olyan megoldásokra, mint a Volcano, az Apache YuniKorn vagy a KAI-Scheduler. A vállalat egyik út mellett sem döntött. A bejegyzés szerint néhány, az alapértelmezett ütemezőre épített eszközzel el tudták érni a kívánt működést.

A cél az úgynevezett tartalékkapacitás kezelése. Amennyire lehet, a munkákat a klaszterben tartják, és csak akkor engedik ki őket a külső kapacitásba, amikor a klaszter megtelt, például kutatási feladatok foglalják le, vagy a következtetési igény kimeríti az erőforrásokat.

Dinamikus taint jelzi, mikor van szabad GPU

A Krea Virtual Kubelet-csomópontja rendkívül nagy mennyiségű erőforrást hirdet. Emiatt a Kubernetes NodeResourcesFit bővítménye aránytalanul magas pontszámot adhat ennek a csomópontnak, így a podok akkor is oda kerülhetnek, amikor a klaszterben még lenne szabad kapacitás. A vállalat kipróbálta a lágy csomópont-affinitást és a MostAllocated stratégiát is, de egyik megoldás sem felelt meg minden igénynek.

A rendszer ezért taintokat használ. A Virtual Kubelet-csomópont alapból rendelkezik egy NoSchedule tainttel, amelyet csak a már migrált munkaterhelések tolerálnak. A Krea szerint ezeknek a feladatoknak előzetesen több módosításon is át kell esniük, például a modelleket le kell tölteniük a külső szolgáltató oldalán, vagy kezelniük kell bizonyos működési eltéréseket.

Alacsony GPU-kihasználtság esetén egy második, senki által nem tolerált taint is megjelenik a csomóponton. Ezt a rendszeren belül futó háttérfeladat kezeli, amely a Prometheustól kérdezi le az elérhető GPU-k számát. A Krea a klaszter állapotát egy PromQL-lekérdezéssel írja le. Ebben például kizárják a legalacsonyabb prioritású adatfeldolgozási feladatokat, hogy a tanítási vagy következtetési munkák elsőbbséget élvezhessenek.

A lekérdezés eredményét időben átlagolják, majd csak akkor adják hozzá vagy távolítják el a taintet, ha az érték egy meghatározott ideig a küszöbérték felett vagy alatt marad. Ezzel igyekeznek elkerülni a folyamatos áthelyezést.

A Descheduler fokozatosan helyezi vissza a munkákat

Amikor újra felszabadulnak GPU-k a klaszterben, a feladatokat vissza kell migrálni. A Krea erre a Descheduler RemovePodsViolatingNodeTaints stratégiáját használja. Ez eltávolítja azokat a podokat, amelyek már megsértik a csomóponton érvényes NoSchedule taint szabályát.

A vállalat nem a NoExecute taintre épít, mert az azonnal kilakoltatná a csomóponton futó összes podot. Ez egy nagyobb következtetési terhelésnél egyszerre szakítaná meg a munkák jelentős részét. A Descheduler ezzel szemben beállítható minimális pod-életkorral, futási gyakorisággal és ciklusonkénti maximális kilakoltatási számmal.

A Krea szerint minden eltávolítás normál kilakoltatásnak számít, ezért érvényesülnek a Pod Disruption Budgetek. A munkaterhelések replikaszáma nem csökken nullára, és az előre beállított alsó határ alá sem kerül.

A Kueue kezeli a sorokat és a prioritásokat

A feladatok felvételéhez és sorrendjéhez a Krea a Kueue-t használja. Négy sort alakítottak ki. A training sor a klaszter GPU-inak szinte teljes készletét kezeli, és kölcsönözhet a többi sornak, illetve kölcsönözhet tőlük. Az inference egy kisebb GPU-készletet tart fenn azoknak a következtetési folyamatoknak, amelyek nem helyezhetők át a Virtual Kubelet-csomópontra.

A low-priority sorhoz nem tartozik saját GPU, csak más soroktól kölcsönözhet, és szükség esetén visszavehető. Az inference-vk ezzel szemben nagy GPU-készletet kezel, amelyet nem adhat kölcsön más soroknak, és más soroktól sem vehet fel erőforrást.

A prioritási rendszer azt veszi alapul, hogy a munkaterhelés hány GPU-t használ. Az 1 GPU-s feladat kapja a legalacsonyabb, a 8 GPU-s a legmagasabb prioritást. A Krea szerint ez segít megszüntetni a GPU-k feldarabolódását. Ha például összesen 8 GPU szabad két csomóponton, egy 8 GPU-t kérő pod a rendszer nélkül várakozó állapotban maradna. A prioritás használatával a rendszer eltávolítja az egyik csomópont feladatait, az új pod oda kerülhet, a korábban futó munkák pedig a másik csomópontra vándorolhatnak.

A megoldás a lekérdezés pontosságától is függ

A Krea szerint a rendszer működőképes, de nem tökéletes. Előfordul, hogy módosítani kell a PromQL-lekérdezést, amikor új logikát kell beépíteni. Ha a lekérdezés és a klaszter tényleges állapota eltér egymástól, a csomópont akkor is taintelt maradhat, amikor a klaszter valójában megtelt. A bejegyzés a korlátozások ismertetését ezen a ponton szakítja meg.

A bemutatott felépítés a Krea felhasználási céljára az alapértelmezett Kubernetes-ütemezőt egészíti ki dinamikus taintokkal, Deschedulerrel és Kueue-val. Így a vállalat a belső GPU-kapacitás kihasználására, a munkák fokozatos áthelyezésére és a külső kapacitás csak szükség esetén történő használatára építi a folyamatot.

Kapcsolódó hírek

Így osztja meg az AI21 a közel 10 ezer GPU-t a csapatai között
Chipek és infrastruktúra2026. október 4. 13:37

Így osztja meg az AI21 a közel 10 ezer GPU-t a csapatai között

Az AI21 egy mintegy 10 ezer GPU-t kezelő, több csapat által használt GKE-fürtön váltott kézi erőforrás-egyeztetésről automatizált feladatütemezésre. A rendszer központi…

A CoreWeave Kubernetesre ültette a Slurm HPC-ütemezőt
Fejlesztőknek2026. október 2. 16:12

A CoreWeave Kubernetesre ültette a Slurm HPC-ütemezőt

A CoreWeave bemutatta a SUNK-ot, amely a Slurm HPC-ütemezőt Kubernetesen futtatja. A megoldás célja, hogy a kötegelt Slurm-feladatok és a hosszú futású…

A Krea úgy futtatja az inferenciát, hogy közben a kutatásé a GPU
Fejlesztőknek2026. augusztus 5.

A Krea úgy futtatja az inferenciát, hogy közben a kutatásé a GPU

A Krea olyan rendszert épített, amely lehetővé teszi, hogy a kutatási tréningek a teljes GPU-klasztert használják, miközben a felhasználói tartalomgenerálás tovább fut.…