В докладе будет рассказано о пути оптимизации процесса доставки данных для обучения моделей в Kubernetes.
Начиная с простой загрузки из S3, мы столкнулись с проблемой увеличения времени запуска задач обучения и решали ее путем поэтапного развития.
Расскажем, как мы:
* перешли от простой загрузки из S3 к кешированию на нодах с использованием Kubernetes CSI-драйвера;
* улучшили процесс, внедрив кеширование в кластерах с помощью NFS-шар и K8S-оператора, и какие ограничения мы встретили;
* разработали и внедрили проектные хранилища с бэкапом в S3, используя NFS Storage API, K8S-оператор и CRUD-сервис.
План доклада
1. Введение в проблему
- Начальные подходы: простая загрузка из S3 и их ограничения.
- Проблемы с большим временем запуска задач обучения.
2. Первый шаг: кеширование на нодах
- Реализация с помощью Kubernetes CSI-драйвера.
- Проблемы с утилизацией ресурсов и наблюдаемостью.
3. Улучшение: кеширование в кластерах с NFS
- Реализация с помощью NFS-шар и K8S-оператора.
- Ограничения по объему и совместной работе.
4. Развитие: именованные хранилища с бэкапом в S3
- Архитектура и реализация с использованием Storage API.
- Создание и управление NFS-хранилищами с помощью K8S-оператора и CRUD-сервиса.
5. Практический опыт и результаты
- Как проектные хранилища изменили наш процесс: метрики эффективности.
- Примеры использования и совместной работы в командах.