nebius/soperator

Run Slurm in Kubernetes

解决的问题

Soperator 简化了在 Kubernetes 上部署和管理 Slurm 集群的过程,特别针对 AI 训练和高性能计算(HPC)场景。它解决了手动配置和维护 Slurm 所需的大量工作,因硬件问题导致长时间训练任务失败的风险,以及固定大小集群或不良调度造成的 GPU 空闲效率低下问题。

工作原理

Soperator 使用 Kubernetes Operator 模式来管理 Slurm。用户通过定义 SlurmCluster 自定义资源来描述整个集群的布局(控制器、工作节点、存储等)。Operator 随后将此规范同步为 Kubernetes 对象,如 Deployments 和 StatefulSets。为确保节点间的一致性,它使用“jail”(通过 PVC 共享的根文件系统),使配置和软件包变更能够立即在集群范围内生效。此外,它还实现了主动和被动健康检查,可自动将故障节点排空并替换。

适用人群

专为需要为 AI 训练提供 Slurm 环境但无需逐节点手动管理的平台团队和工程师设计,也适用于从裸金属 Slurm 安装迁移到 Kubernetes 的团队。

核心亮点

  • 声明式管理:通过单一 Kubernetes 资源管理整个 Slurm 堆栈,包括 NVIDIA 驱动、CUDA 和 NCCL。
  • 自动化可靠性:主动和被动健康检查可检测 GPU 和网络故障,并自动触发节点替换。
  • GPU 效率优化:支持临时节点用于自动伸缩,以及支持 InfiniBand 的节点调度,以最大化 GPU 利用率。
  • 可移植部署:兼容多种云服务商(AWS、GCP、Azure、Nebius、OCI)以及裸金属或离线环境。
  • 标准 Slurm 体验:保留熟悉的 Slurm 行为,如 gang 调度、公平共享和抢占机制。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目