kuberay-project/kuberay
A toolkit to run Ray applications on Kubernetes
KubeRay – Kubernetes オペレーター for Ray
概要
- オープンソースの CNCF サンドボックスプロジェクトで、Kubernetes クラスター上で Ray ワークロード(分散トレーニング、推論、サービングなど)を実行するための Kubernetes オペレーターを提供します。
- RayCluster、RayJob、RayService の 3 つのカスタムリソースを定義し、Kubernetes マニフェストから Ray クラスターを宣言的に作成、スケーリング、管理できます。
主要コンポーネント
| コンポーネント | 目的 |
|---|---|
| RayCluster | Ray クラスターのライフサイクル全体(作成、オートスケーリング、耐障害性、削除)を管理します。 |
| RayJob | 一時的な RayCluster を起動し、ジョブを実行し、ジョブ完了時にクラスターを自動的に削除します。 |
| RayService | RayCluster と Ray Serve デプロイメントグラフを組み合わせ、ダウンタイムなしのアップグレードと高可用性サービングを実現します。 |
| kubectl-ray プラグイン (ベータ) | 生の Kubernetes オブジェクトにあまり詳しくないユーザー向けに、一般的な KubeRay 操作を簡素化する CLI ヘルパー(kubectl ray ...)。 |
| KubeRay APIServer (アルファ) | カスタム UI やその他のツールが KubeRay リソースを管理するために使用できる軽量な API レイヤー。 |
| KubeRay ダッシュボード (実験的) | Ray クラスター、ジョブ、サービスを可視化・管理するための Web UI。 |
なぜ使うのか
- 宣言的: 他の Kubernetes アプリと同様に、YAML で Ray ワークロードを定義できます。
- ネイティブなスケーリング: Kubernetes のオートスケーリングメカニズムを活用し、キューイングシステム(Volcano、Kueue など)と統合して弾力的なリソース割り当てを実現します。
- 可観測性: Prometheus、Grafana、プロファイリングツール(py-spy)とすぐに連携します。
- 本番環境対応のパターン: ダウンタイムなしのアップグレード、高可用性サービング、一時クラスターの自動クリーンアップをサポートします。
一般的なユースケース
- 大規模な分散モデルトレーニング(例:Ray Train)。
- GPU/TPU を使用した推論を含む、Ray Serve による大規模言語モデル(LLM)のサービング。
- バッチ推論パイプラインとアンサンブルモデルのサービング。
- Kubernetes のスケジューリング、セキュリティ、マルチテナンシー機能の恩恵を受けるあらゆる Ray ベースのワークロード。
はじめに
- オペレーターをインストールします(例:Helm または提供されたマニフェストの
kubectl applyを使用)。 - カスタムリソースを選択します:
- 長時間実行クラスターの場合は RayCluster。
- 一度きりのジョブの場合は RayJob。
- 自動ロールアウトによる API サービングの場合は RayService。
- 対応する YAML マニフェストを適用します。オペレーターが Ray ヘッドとワーカーポッドを作成し、オートスケーリングを処理し、ヘルスを監視します。
- オプションで、
kubectl ray submit ...などのショートカットを実行するためにkubectl rayプラグインをインストールします。
エコシステム統合
- 一般的な Kubernetes アドオン(Ingress コントローラー(NGINX)、可観測性スタック(Prometheus/Grafana)、バッチスケジューラー(Volcano、Kueue、YuniKorn))と連携します。
- ドキュメントと例は Ray ドキュメントサイトでホストされており、トレーニング、LLM 推論、バッチジョブなどがカバーされています。
コミュニティとサポート
- アクティブな Slack チャンネル
#kuberayと隔週のコミュニティミーティング。 - ガバナンスと貢献ガイドライン(GOVERNANCE.md、CONTRIBUTING.md)が提供されています。
- セキュリティ問題はプロジェクトのセキュリティポリシーに従って報告されます。
ライセンス
- Apache-2.0。
まとめ KubeRay は、Ray の強力な分散コンピューティングモデルをファーストクラスの Kubernetes ワークロードに変え、AI/ML チームが使い慣れた Kubernetes ツールを使用して、トレーニングおよびサービングパイプラインをデプロイ、スケーリング、運用できるようにします。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト