nebius/soperator

Run Slurm in Kubernetes

何を解決するか

SoperatorはKubernetes上でSlurmクラスタのデプロイと管理を簡素化し、特にAIトレーニングおよびハイパフォーマンスコンピューティング(HPC)向けに設計されています。手動でのSlurmのセットアップ・メンテナンスの負担、ハードウェアの問題による長時間実行ジョブの失敗リスク、固定サイズのクラスタや不適切な配置によるGPUの無駄なアイドル化といった課題に対処します。

動作方法

SoperatorはKubernetes Operatorパターンを使用してSlurmを管理します。ユーザーはSlurmClusterカスタムリソースを定義し、クラスタ全体の構成(コントローラー、ワーカー、ストレージなど)を記述します。その後、Operatorがこの仕様をDeploymentsやStatefulSetsなどのKubernetesオブジェクトに同期します。ノード間の一貫性を確保するために、PVCを介した共有ルートファイルシステム(「jail」)を使用し、設定やパッケージの変更をクラスタ全体に即座に適用します。また、パッシブおよびアクティブなヘルスチェックを実装し、障害が発生したノードを自動的にドレインして置き換えます。

対象ユーザー

Slurm環境をAIトレーニングに提供する必要があるプラットフォームチームやエンジニア、およびベアメタルのSlurmインストールからKubernetesへの移行を検討しているチームに最適です。

主な特徴

  • 宣言的管理: NVIDIAドライバー、CUDA、NCCLを含むSlurmスタック全体を、1つのKubernetesリソースで管理可能。
  • 自動信頼性: アクティブおよびパッシブなヘルスチェックによりGPUおよびネットワーク障害を検出し、ノードの自動置換をトリガー。
  • GPU効率: オートスケーリングに対応する一時的ノードと、InfiniBand対応の配置戦略によりGPU利用効率を最適化。
  • ポータブルなデプロイ: AWS、GCP、Azure、Nebius、OCIなどさまざまなクラウドプロバイダー、およびベアメタルまたはオフライン環境に対応。
  • 標準的なSlurm体験: ガングスケジューリング、フェアシェア、プリエンプションといったSlurmの慣用的な振る舞いを維持。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト