Kubernetes 1.37: Интеграция gang scheduling и нюансы активации
Релиз Kubernetes 1.37 ознаменовался важным событием: функция gang scheduling, позволяющая группировать поды для совместного размещения, стала частью ядра kube-scheduler в статусе бета-версии. Однако, несмотря на первоначальные сообщения в СМИ, активация этой функции по умолчанию выключена и требует ручной настройки.
28 августа издание Tech Times опубликовало заголовок, который создал впечатление, что gang scheduling и оптимизация простоя GPU включены по умолчанию. Одиннадцать дней спустя разработчики функции в официальном блоге проекта уточнили, что все бета- и альфа-функции в этом релизе отключены по умолчанию и требуют ручного включения. Это расхождение между новостными заголовками и официальной документацией является ключевым аспектом данного обновления.
История и текущий статус gang scheduling
Концепция группового размещения подов была впервые описана в 2018 году, и тогда же было принято решение о её реализации вне основного ядра Kubernetes. В течение последующих восьми лет эту функциональность развивали такие проекты, как Volcano, YuniKorn, Kueue, а также различные сторонние плагины. С выходом Kubernetes 1.37 групповое размещение стало внутренней бета-функцией kube-scheduler, но его активация остаётся на усмотрение пользователя.
Различия между внутренним и внешним планировщиками
Некоторые обзоры ошибочно предполагают, что включение бета-версии gang scheduling в ядро устраняет необходимость во внешних планировщиках. Однако, согласно документу KEP (Kubernetes Enhancement Proposal), ядро Kubernetes теперь отвечает только за размещение группы подов. Управление очередями и квотами по-прежнему остаётся задачей внешних планировщиков, таких как Kueue и Volcano. Это чётко указано в официальной документации.
Рекомендации для различных специалистов
- Для инженеров: Рекомендуется изучить детальный анализ работы кластера с GPU и внешним планировщиком, чтобы эффективно использовать новые возможности.
- Для администраторов платформы: Важно ознакомиться со списком feature gates, которые необходимо активировать для пользователей, чтобы включить gang scheduling.
- Для руководителей: Представлены критерии, которые помогут принять обоснованное решение о целесообразности отказа от использования Volcano после обновления, учитывая новые возможности ядра Kubernetes.
Интеграция gang scheduling в ядро kube-scheduler в версии 1.37, пусть и в бете с ручной активацией, является стратегическим шагом. Важно отметить, что это не отменяет внешних планировщиков вроде Kueue или Volcano, а скорее меняет их роль, перенося базовую логику группировки внутрь. Основная ценность внешних решений теперь будет заключаться в управлении очередями, квотами и более сложными политиками, что критично для высоконагруженных сред, особенно с GPU-ворклоадами.