volcano-sh/volcano
A Cloud Native Batch System (Project under CNCF)
Volcano – AI/ML、ビッグデータ、HPC向けクラウドネイティブバッチスケジューラ
何であるか – VolcanoはKubernetesネイティブなバッチジョブスケジューラであり、デフォルトのkube-schedulerに高スループット・高性能ワークロード向けの豊富な機能を拡張しています。AI/MLトレーニング、ディープラーニング、ゲノミクス、Spark/Flinkジョブ、MPI/Horovod、およびその他の「ビッグデータ」またはHPCワークロードをKubernetesクラスタ上で実行するために設計されています。
なぜ重要か – 標準的なKubernetesスケジューリングはレイテンシに敏感なサービスに最適化されていますが、ギャングスケジューリング、リソースパッキング、またはトポロジーアウェアな配置が必要な大規模で並列なGPU重視ジョブには不向きです。Volcanoはこれらの機能を追加しつつ、Kubernetes APIおよびCRDと完全に互換性を持ち、AIトレーニングパイプライン、データ処理ジョブ、科学的シミュレーションをスケールして実行できます。
コア機能
- ギャングスケジューリング – 分散ジョブのすべてのポッドが同時に開始されることを保証し、MPI、TensorFlow、PyTorch、Horovodなどでのデッドロックを防止します。
- リソースアウェアな配置 – GPU、CPU、メモリ、カスタムリソースをサポート。トポロジーアウェアおよびネットワークアウェアなスケジューリングにより、フラグメンテーションを低減し、パフォーマンスを向上します。
- ジョブライフサイクル管理 – オリジナルの
JobおよびJobSetCRD、組み込みのリトライ、バックオフ、ジョブ完了追跡機能を備えています。 - 優先度とプリエンプション – 高優先度のトレーニングジョブが低優先度のバッチジョブをプリエンプトできます。
- 拡張可能なプラグイン – スケジューラ、アドミッション、コントローラプラグインは特定のフレームワーク向けにカスタマイズ可能です。
- モニタリングとUI – オプションのPrometheusメトリクス、Grafanaダッシュボード、およびジョブの可視化に使えるWebダッシュボードを提供します。
エコシステム統合(一部)
| フレームワーク / ツール | 統合ポイント |
|---|---|
| Spark | K8s上のSpark用スケジューラバックエンド、Spark Operatorサポート |
| Flink | Flink-on-K8s Operator用カスタムスケジューラ |
| Ray / KubeRay | Rayクラスタ用の直接Volcanoバックエンド |
| TensorFlow / PyTorch / MXNet / PaddlePaddle / MindSpore | 専用プラグインと例のマニフェスト |
| Kubeflow Trainer / Arena | Volcanoベースのジョブ定義 |
| MPI / Horovod | 分散MPIジョブ用ギャングスケジューリング |
| Argo | Argoワークフロー用のリソーススケジューラとしてのVolcano |
| Cromwell, Kthena, Grove, LeaderWorkerSet | 複数のワークフローエンジン用バックエンドサポート |
一般的なユースケース(プロジェクトが強調する点)
- GPUクラスタ上で大規模なAIモデルトレーニング(例:LLMの事前学習、知識蒸留)。
- SparkまたはFlinkを用いた分散データ処理パイプライン。
- 多数のCPUコアと高速インターコネクトを必要とするバイオインフォマティクス/ゲノミクスパイプライン。
- メテオロジー、金融、製造業におけるHPCシミュレーションで、ノードレベルでの密接な連携が必要なケース。
- AIワークロードとレイテンシに敏感なサービスが共存するマルチテナントクラスタ。
クイックスタート(Kubernetesクラスタへのインストール)
- 前提条件 – CRDサポート付きKubernetes 1.12+。
- ワンライナーインストール(x86_64およびarm64で動作):
これにより、アドミッションコントローラ、コントローラマネージャ、スケジューラポッドを含むkubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/master/installer/volcano-development.yamlvolcano-system名前空間が作成されます。 - オプションのHelmインストール – 公式チャートを追加してインストール:
helm repo add volcano-sh https://volcano-sh.github.io/helm-charts helm install volcano volcano-sh/volcano -n volcano-system --create-namespace - モニタリングの追加(ダッシュボードが必要な場合):
kubectl create -f installer/volcano-monitoring.yaml - UIの探索 – ジョブ、リソース、イベントを表示するWeb UIについては、Volcano Dashboardリポジトリを参照してください。
コミュニティとガバナンス
- CNCFインキュベーションプロジェクト – クラウドネイティブコンピューティングファウンデーション下で運営。
- Slackとメーリングリスト – CNCF Slackのアクティブな
#volcanoチャンネル、Googleグループメーリングリスト、中国語ユーザー向けのWeChatグループ。 - 定期的なコミュニティミーティング – 公開された議題と議事録、KubeCon(2019–2026)のトーク録画(AI、ビッグデータ、HPCユースケースをカバー)。
- 貢献方法 – 数百人の貢献者。Travis、Go Report Card、OpenSSFスコアカードバッジによるCIにより、健全なコード品質が保証されています。
TL;DR
Volcanoは、標準のKubernetesクラスタをAI/ML、ビッグデータ、HPCワークロードに最適化されたプロダクショングレードのバッチジョブエンジンに変換します。ギャングスケジューリング、GPUアウェアな配置、優先度/プリエンプション、主要AIフレームワークとの深い統合を提供しつつ、Kubernetes APIおよびエコシステムに完全にネイティブです。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト