nebius/soperator
Run Slurm in Kubernetes
해결하는 문제
Soperator는 Kubernetes에서 Slurm 클러스터를 배포하고 관리하는 것을 간소화하며, 특히 AI 트레이닝 및 고성능 컴퓨팅(HPC)을 위한 목적에 특화되어 있습니다. 수동으로 Slurm을 설정하고 유지보수해야 하는 번거로움, 하드웨어 문제로 인한 장시간 트레이닝 작업의 실패 위험, 고정 크기의 클러스터나 부적절한 배치로 인한 GPU의 비효율적인 대기 상태를 해결합니다.
작동 방식
Soperator는 Kubernetes Operator 패턴을 사용하여 Slurm을 관리합니다. 사용자는 SlurmCluster 커스텀 리소스를 정의하여 클러스터 전체의 구조(컨트롤러, 워커, 스토리지 등)를 설명합니다. 이후 Operator는 이 사양을 Deployments 및 StatefulSets과 같은 Kubernetes 객체로 동기화합니다. 노드 간 일관성을 보장하기 위해 PVC를 통해 공유 루트 파일시스템('jail')을 사용하여 구성 및 패키지 변경 사항을 클러스터 전체에 즉시 적용합니다. 또한 패시브 및 액티브 헬스 체크를 구현하여 고장 난 노드를 자동으로 드레인하고 교체합니다.
대상 사용자
각 노드를 수동으로 관리하지 않고도 AI 트레이닝을 위한 Slurm 환경을 제공해야 하는 플랫폼 팀 및 엔지니어, 그리고 베어메탈 Slurm 설치에서 Kubernetes로 마이그레이션을 고려하는 팀에게 적합합니다.
주요 특징
- 선언적 관리: NVIDIA 드라이버, CUDA, NCCL를 포함한 Slurm 스택 전체를 단일 Kubernetes 리소스로 관리 가능.
- 자동 신뢰성: 액티브 및 패시브 헬스 체크를 통해 GPU 및 네트워크 장애를 감지하고 자동으로 노드 교체를 트리거.
- GPU 효율성: 자동 스케일링을 지원하는 일시적 노드와 InfiniBand 인식 배치를 통해 GPU 활용도를 최적화.
- 포터블 배포: AWS, GCP, Azure, Nebius, OCI 등 다양한 클라우드 제공업체 및 베어메탈 또는 오프라인 환경과 호환.
- 표준 Slurm 경험: 가ング 스케줄링, 페어쉐어, 프리엠프션과 같은 익숙한 Slurm 동작을 유지.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트