JobSet#

JobSet — нативный API Kubernetes для управления группой Job как единым целым. Предоставляет унифицированный интерфейс для развертывания рабочих нагрузок высокопроизводительных вычислений (High-performance computing, HPC), например, MPI, и задач обучения AI/ML (PyTorch, JAX, TensorFlow) в Kubernetes.

Основные функции:

  • Моделирование распределенной нагрузки как группы Job с возможностью задания различных шаблонов pod для разных групп (лидер, воркеры, parameter-серверы).

  • Автоматическое управление headless-сервисами через IndexedJobs с созданием стабильных имен хостов pod и настройкой DNS-записей для сетевой связности.

  • Настраиваемые политики сбоев (failurePolicy) с заданием максимального количества перезапусков и пересозданием всего JobSet при сбое любого дочернего Job для восстановления с контрольной точки.

  • Настраиваемые политики успеха (successPolicy) с возможностью отмечать JobSet как завершенный при выполнении условий для конкретных ReplicatedJobs (операторы Any/All), оптимизируя высвобождение ресурсов.

  • Эксклюзивное размещение по топологическим доменам через аннотации, обеспечивающее соотношение 1:1 между дочерним Job и топологическим доменом (стеллаж, зона), гарантируя изоляцию вычислительных ресурсов.

  • Последовательный запуск (Startup Sequencing) ReplicatedJobs с настройкой порядка активации (например, лидер перед воркерами).

  • Интеграция с Kueue для управления очередями, многопользовательского режима и совместного использования ресурсов.

  • Поддержка пользовательских поддоменов в спецификации для гибкой настройки сетевой топологии.