kubernetes-sigs/jobset

JobSet: a k8s native API for distributed ML training and HPC workloads

해결하는 문제

JobSet은 Kubernetes 내에서 여러 Kubernetes Job을 하나의 단위로 관리할 수 있는 네이티브 API를 제공합니다. 일반적으로 여러 파드 간의 조율, 안정적인 네트워크 엔드포인트, 특정 장애 복구 패턴을 필요로 하는 분산 AI/ML 학습 워크로드(예: PyTorch, Jax, TensorFlow) 및 HPC 애플리케이션(MPI 등)의 배포를 간소화합니다.

작동 방식

JobSet은 분산 워크로드를 Kubernetes Job의 그룹으로 모델링합니다. 헤드리스 서비스의 자동 관리를 통해 워커 간 통신을 위한 안정적인 파드 호스트네임을 제공합니다. 또한 리더와 워커와 같은 서로 다른 역할에 맞는 여러 파드 템플릿을 정의하고, 사용자가 구성 가능한 성공 및 실패 정책에 따라 전체 그룹의 라이프사이클을 관리할 수 있습니다.

대상 사용자

Kubernetes 클러스터에서 대규모 분산 AI/ML 학습 또는 HPC 워크로드를 배포하는 개발자 및 플랫폼 엔지니어.

주요 기능

  • 다중 템플릿 지원: 리더와 파라미터 서버와 같은 서로 다른 파드 그룹에 대해 서로 다른 파드 템플릿을 정의 가능.
  • 안정적인 네트워킹: 헤드리스 서비스 및 IndexedJobs의 자동 구성으로 분산 학습에서 안정적인 파드 호스트네임 보장.
  • 사용자 정의 정책: 체크포인트에서 자동 재시작을 위한 실패 정책과 자원을 효율적으로 해제하기 위한 성공 정책을 커스터마이징 가능.
  • 전용 배치: 자식 작업과 토폴로지 도메인(예: 랙 또는 존) 간 1:1 매핑을 보장하여 전용 리소스 접근 보장.
  • 시작 순서 제어: 리더-워커 패러다임과 같은 패턴을 지원하기 위한 파드의 순차적 시작 지원.
  • Kueue 통합: Kueue와의 통합을 통해 클러스터 오버서브스크립션, 멀티테넌시, 리소스 공유 가능.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트