← КейсыML-платформа

крупный сервис объявленийс 2025

ML-платформа на Kubeflow для 1000+ пользователей

Десятки команд дата-сайентистов и аналитиков, тысячи сотрудников с доступом к ML. Вместо DevBox у каждого и нескольких юнит-платформ собрали одну платформу, где GPU делятся между командами.

Цифры

15% → 60%утилизация GPU
~1000активных пользователей в месяц
~70 тыс.ранов пайплайнов в месяц

Было

  • DevBox: у каждого дата-сайентиста своя машина с GPU и SSH. Лучшая платформа для одного человека и худшая для компании: GPU простаивают, кто чем занят, не видно.
  • Юнит-платформы: одна команда строит на Kubeflow, другая на Airflow. Люди держат в голове оба инструмента, онбординг затягивается, железо закупают наперегонки.
  • Пайплайны падают молча: причину ошибки пользователь не видит и идёт к дежурным.

Стало

  • Одна точка входа для ~1000 активных пользователей в месяц: JupyterLab, Pipelines, Model Registry и распределённое обучение.
  • GPU делятся через Kueue: утилизация выросла примерно с 15% до 60%.
  • ~70 тыс. ранов пайплайнов и до 3 тыс. запусков распределённого обучения в месяц.
  • Патчи Kubeflow Pipelines в 2 раза сократили расход ресурсов Kubernetes на пайплайны, ошибки подов видны в UI.
  • Одна настройка Istio Sidecar сэкономила около терабайта оперативной памяти на нодах.

Что сделали

  1. Одна точка входа. Kubeflow Central Dashboard с JupyterLab, Pipelines, Model Registry, отчётами и распределённым обучением. Платформа встроена в контекст компании: LDAP/SSO, Vault, observability, S3, Trino, Data Lake.

  2. Команды и доступы через YAML и pull request. Плагин на Go к профилям Kubeflow: профиль команды равен namespace, внутри личные namespace пользователей, люди подтягиваются из LDAP-групп.

  3. Шеринг GPU на Kueue вместо своего шедулера. Флейворы по типам железа (CPU, A100, H100, HGX H100, MIG-слайсы), своя когорта с гарантиями на каждую команду, очереди prod и regular. Регулярная задача может занять чужой простаивающий GPU, а когда владельцу нужны его ресурсы, её вытесняют с чекпоинтом. Для HGX H100 включили topology-aware scheduling по InfiniBand. Всё декларативно, в GitOps.

  4. JupyterLab с удалёнными кернелами. Каждая ячейка поднимает кернел в кластере. Простоял около часа: ресурсы вместе с GPU освобождаются. Креды из Vault и подключения к базам доступны сразу.

  5. Доработали Kubeflow Pipelines и отправили изменения в апстрим. Ошибки подов видны в UI, появились метрики и SLA, стало меньше запросов в MySQL, central driver заменил пару driver-подов на каждый ран.

  6. Обвязка под тысячи namespace. Istio Sidecar урезает конфиг Envoy при 3000+ namespace, секреты приходят через Vault Injection, распределённое обучение идёт через Kubeflow Trainer. Свой Model Registry на S3 и MySQL и Model Delivery: нажал «Доставить», и модель подменилась в работающем инференсе без перезапуска.

Стек

KubeflowKubeflow PipelinesArgo WorkflowsKueueKubeflow TrainerJupyterLabIstioVaultLDAP/SSOMySQLS3Grafana

Моя роль

MLOps-инженер в команде ML-платформы. Моя зона: утилизация GPU, Kueue для батч-задач, интеграция Vault.

Обсудить похожую задачуTelegramконсультация через getMentor или Telegram

↑↓ выбор · Enter открыть · Esc закрыть