Selectel vs VK Cloud: managed Kubernetes с GPU-пулами для ML-нагрузок
Сравниваем managed Kubernetes в Selectel и VK Cloud для ML-клиента: GPU-пулы, версии K8s, CSI-драйверы, сертификационный статус и реальная стоимость эксперимента.
Selectel и VK Cloud анонсируют поддержку GPU-пулов в managed Kubernetes в 2025
Несколько недель назад у нас появился конкретный повод сравнить два отечественных managed Kubernetes - Selectel и VK Cloud. Клиент занимается ML-задачами: обучение моделей, инференс, периодические batch-пайплайны на GPU. До этого всё крутилось на self-managed кластере на bare metal, но содержать его стало дорого в части операционки. Встал вопрос: переехать на managed или остаться на своём железе, но убрать часть рутины.
Оба провайдера в 2025 году анонсировали поддержку GPU-пулов в managed K8s - это и стало поводом посмотреть внимательно. Мы потратили несколько дней на сравнение, подняли тестовые кластеры и пришли к некоторым выводам.
Версии Kubernetes и цикл обновлений
Первый вопрос, который обычно задают инфраструктурщики - до какой версии K8s можно обновиться и как быстро провайдер подтягивает новые релизы.
Selectel на момент нашего теста поддерживал 1.28-1.30. Kubernetes 1.31 был в очереди, по дорожной карте - ближайшие месяцы. Для клиента, которому нужен актуальный планировщик с GPU-топологией (а это улучшения, которые тянутся с 1.29-1.30), это нормально.
VK Cloud поддерживал те же диапазоны, но с одной приятной деталью: UI для обновления между минорными версиями сделан чуть удобнее - видно статус узлов во время rolling update и есть возможность откатить до предыдущей версии без потери данных тома (если используешь их CSI). Мелочь, но при обновлении кластера в продуктиве это нервы.
Для ML-нагрузок версия K8s важна не сама по себе, а через DRA (Dynamic Resource Allocation) и улучшения планировщика для GPU. Оба провайдера пока на версиях, где DRA - alpha/beta. Кто раньше выкатит 1.32+ в managed - тот получит преимущество для клиентов с GPU.
GPU-пулы: как устроено и что реально работает
Это главная тема сравнения. GPU-пул в managed K8s - это node pool с GPU-узлами, которые провайдер поднимает и обслуживает за тебя.
Selectel предлагает GPU-узлы на базе A100 и H100. Пул создаётся через UI или Terraform-провайдер. Мы подняли тестовый пул из двух узлов с одной A100 на каждом. На что обратили внимание:
- NVIDIA device plugin ставится автоматически - не надо руками разворачивать DaemonSet.
- GPU Operator от NVIDIA не используется - провайдер ставит свои версии драйверов. Это означает, что ты немного теряешь в гибкости: нельзя легко переключиться на MIG-конфигурацию или поставить другую версию драйвера без согласования с поддержкой.
- Time-slicing GPU через ConfigMap device plugin настраивается, но документация по этому не очень.
VK Cloud с GPU-узлами ситуация похожая, но со своими нюансами. Доступны V100 и A100 в зависимости от региона. GPU Operator здесь тоже не используется, своя оркестрация драйверов. Нам понравилось, что node labels для GPU проставляются по нормальной схеме nvidia.com/gpu.product, что позволяет сразу писать nodeSelector/affinity в стандартном формате.
CSI-драйверы и хранилище для ML
ML-нагрузки часто требуют быстрого хранилища под датасеты и чекпоинты моделей. Это отдельный больной вопрос для managed K8s.
Selectel предоставляет CSI-драйвер для своего блочного хранилища. PVC создаются без проблем, StorageClass по умолчанию есть. Но NFS или S3-backed PVC через CSI нет из коробки - если нужно смонтировать бакет как том, придётся разворачивать s3fs или goofys самостоятельно через DaemonSet или sidecar. Для ML-пайплайнов, где датасеты живут в object storage, это ощутимое неудобство.
VK Cloud в этом плане немного интереснее: есть CSI для блока и отдельный механизм для монтирования Object Storage через CSI. Работает через S3-совместимый протокол, тома ReadWriteMany поддерживаются. Для ML-задач, где несколько подов одновременно читают один датасет - это важно.
Оба провайдера поддерживают snapshot для PVC. Это критично для checkpoint-recovery при обучении.
Цена GPU-пулов
Здесь нет смысла приводить конкретные цифры - они меняются, и к моменту когда это читают, прайсы уже другие. Но структура стоимости важна.
Selectel берёт почасовую оплату за GPU-узел, плюс отдельно хранилище и трафик. Минимального времени аренды нет - можно поднять узел на час для теста. Для нашего клиента это важно: он не хочет платить за GPU 24/7, только под обучение.
VK Cloud аналогичная модель, но ценообразование на H100 устроено иначе - они доступны только под резервирование (предоплата на месяц вперёд). A100 - почасово. Если нужен H100 под конкретный проект, это надо учитывать в бюджете.
Для клиента с непредсказуемым расписанием обучения почасовая модель Selectel оказалась чуть удобнее.
Сертификационный статус и работа в КИИ
Наш клиент не является объектом КИИ, поэтому этот пункт не был критичным. Но для других клиентов - важно. Оба провайдера работают в российских ЦОДах, услуги managed K8s формально относятся к облачным сервисам.
Ни Selectel, ни VK Cloud не имеют сертификации ФСТЭК на managed Kubernetes как на средство защиты информации - это не та услуга, которая сертифицируется сама по себе. Вопрос совместимости с требованиями КИИ решается на уровне архитектуры: какие данные куда попадают, есть ли сертифицированные СЗИ поверх.
Что выбрали и что дальше
По итогам двух недель тестирования клиент склоняется к Selectel как основной площадке для GPU-пулов - чуть более гибкое ценообразование для нерегулярного обучения и нормальная работа NVIDIA device plugin. VK Cloud берём в запас: S3-CSI реально удобен для датасетов, и если структура пайплайна изменится в сторону постоянного доступа к Object Storage - вернёмся к этому варианту.
Self-managed bare metal при этом не уходит полностью: инференс в продуктиве останется там, потому что latency на собственном железе предсказуемее. Managed K8s - для обучения и экспериментов, где простота операционки важнее, чем максимальная оптимизация.
Детальнее по всей этой истории - на managed-сопровождении, там же смотрим архитектуру пайплайнов для клиентов с ML-задачами.
- Kubernetes 1.33: тестируем InPlace Pod Resizing на JVM без рестарта · 17 апреля 2025
- Kubernetes 1.32: DRA стабилен, смотрим что это меняет для GPU-нод · 20 февраля 2025