MLOps Path

9.2.2 · блок 9

Kueue и очереди

Kueue и очереди

Зачем это нужно

Когда несколько команд одновременно хотят GPU, обычный scheduler Kubernetes оставляет pods в Pending. Это симптом нехватки или конкуренции, но не политика справедливого доступа. Kueue и Volcano добавляют admission и очереди для batch-workload.

Основные идеи

Scheduling выбирает node для уже допущенного pod. Admission решает раньше: может ли workload начать работу сейчас с учётом quota и очереди.

Pending pod — факт: pod пока не запланирован. Причина может быть в GPU, node selector, taint, image pull или quota. Не объявляйте любой Pending «очередью».

Kueue управляет локальными очередями, cluster quota и admission workload. Workload ждёт допуска, а pods создаются или становятся runnable после получения ресурсов — так cluster не забивается бесполезными ожидающими pods.

Volcano — другой scheduler/набор механизмов для batch и gang scheduling. Gang scheduling полезен, когда distributed training нужен сразу на N GPU: один worker без остальных не приносит пользы.

Как это выглядит на практике

У команд research и production разные LocalQueue, но общий ClusterQueue с GPU quota. Приоритет production-serving выше; training job на 8 GPU ожидает admission целиком, а не занимает 2 GPU и висит часами.

Runbook для ожидающего job: проверить состояние Kueue → quota и borrowing policy → нужный ресурс и node labels → только затем смотреть события Kubernetes scheduler.

Что сделать после занятия

Официальные материалы

Открыть интерактивную версию