KubeRay#
KubeRay — это оператор DropApp, предназначенный для упрощения развертывания, управления приложениями Ray в DropApp и устранения сложностей, связанных с их запуском. Для запуска приложений Ray требуется развертывание кластера Ray. Каждый кластер Ray состоит из главного node и набора рабочих node.
Примечание
Ray - это открытый фреймворк для распределенных вычислений, разработанный для задач в области AI и машинного обучения.
KubeRay обеспечивает интеграцию кластеров Ray с DropApp и используется в сценариях, где требуется особое внимание к управлению ресурсами, например для ML-тренировок, обработки потоковых данных или выполнения распределенных задач с переменной нагрузкой.
KubeRay предоставляет следующие CRD (Custom Resource Definition) ресурсы:
RayCluster;RayJob;RayService.
Данные CRD помогают эффективно управлять кластерами Ray, адаптируя их для различных сценариев использования.
Назначение#
KubeRay применяется в следующих случаях:
развертывание отказоустойчивых кластеров Ray для обучения ML-моделей в распределенном режиме;
оркестрация задач обработки данных (ETL, Feature Engineering) с динамическим масштабированием под нагрузку;
интеграция Ray-приложений в существующую инфраструктуру DropApp для совместной работы с другими сервисами (например, базами данных, мониторингом);
упрощение CI/CD-пайплайнов для ML-проектов, где требуется автоматическое обновление кластеров.
Функциональность#
автоматизированное развертывание кластеров Ray через CRD и Helm-чарты;
горизонтальное масштабирование на основе метрик DropApp (HPA) или пользовательских правил;
интеграция с API DropApp для управления ресурсами (pods, сервисы, конфигурации);
мониторинг и логирование через интеграцию с Prometheus, Grafna и Fluentd;
поддержка многопользовательских сценариев с изоляцией ресурсов через namespace;
управление зависимостями (Python-пакеты, Docker-образы) для воспроизводимости задач;
автоматическое восстановление pods и перераспределение задач;
гибкая конфигурация кластеров (версии Ray, ресурсы CPU/GPU, переменные среды).