В докладе будет рассказано о пути оптимизации процесса доставки данных для обучения моделей в 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. Практический опыт и результаты
- Как проектные хранилища изменили наш процесс: метрики эффективности.
- Примеры использования и совместной работы в командах.