KubeRay を使用すると、分散型 AI ワークロードのために ACK 上で Ray クラスターをデプロイ、スケーリング、管理できます。
Ray コンピューティングフレームワークには、Ray AI Libraries、Ray Core、Ray クラスターの 3 つのレイヤーがあります。
KubeRay の概要
KubeRay は、Ray アプリケーションをデプロイおよび管理するためのオープンソースの Kubernetes オペレーターです。宣言型の Kubernetes API を通じて、RayCluster、RayJob、RayService という 3 つのカスタムリソースを提供します。
Container Service for Kubernetes (ACK) は、Kubernetes 適合性の認定を受けたエンタープライズグレードのコンテナ管理を提供します。KubeRay を使用して、ACK に Ray クラスターをデプロイします。
Ray on ACK は、以下の Alibaba Cloud サービスと統合しています:
| Alibaba Cloud サービス | 機能 |
|---|---|
| Simple Log Service | ログ管理 |
| Managed Service for Prometheus | 可観測性 |
| Tair (Redis OSS-Compatible) | 可用性の向上 |
| Ray オートスケーラー + ACK オートスケーラー | オンデマンドのリソーススケーリング |
詳細については、「Kuberay-Operator のインストール」をご参照ください。
Kuberay-Operator
KubeRay は、ACK コンソールの [アドオン] ページからインストールします。ACK は、オープンソースの KubeRay オペレーターをベースにした Kuberay-Operator を提供します。これにより、ACK の以下の機能が有効になります:
-
スケジューリング
-
弾力性クォータ
-
優先度に基づくリソーススケジューリング
-
Simple Log Service、Managed Service for Prometheus、および Object Storage Service (OSS) との統合
インストール後、ACK は Kuberay-Operator を管理し、データプレーン上に RayCluster、RayJob、および RayService のカスタムリソースを作成します。
カスタムリソース
RayCluster
RayCluster は、ACK クラスター上に head Pod と worker Pod で構成される Ray クラスターを作成します。詳細については、「RayCluster の設定」をご参照ください。
RayJob
RayJob (K8sJobMode モード) は、RayCluster と Kubernetes のバッチ Job を管理します。RayCluster がコンピューティングリソースを提供する一方、バッチ Job は ray job submit を実行して Ray ジョブをサブミットします。詳細については、「RayJob の設定」をご参照ください。
RayService
RayService は、RayCluster と Ray Serve アプリケーションを管理します。RayCluster はコンピューティングリソースを提供し、Ray Serve はモデルのデプロイと推論を処理します。
Ray on ACK の共有責任
KubeRay を使用して ACK クラスターで Ray ワークロードを実行する場合、環境のセキュリティと管理に関する責任は、お客様と Alibaba Cloud が共有します。
Alibaba Cloud の責任
ACK は Kuberay-Operator を管理し、セキュリティを確保します:
-
Kuberay-Operator イメージがセキュリティ強化基準に準拠していることを保証します。
-
Kuberay-Operator の安定性と可用性を保証します。
-
Kuberay-Operator のバージョンを維持します。
-
RayCluster、RayJob、および RayService のカスタムリソースを管理します。
お客様の責任
お客様は、RayCluster、RayJob、および RayService を使用してデプロイされた Ray アプリケーションのセキュリティと設定に責任を負います。
-
「Ray クラスターの保護」のベストプラクティスに従う必要があります。
-
Ray の head Pod と worker Pod のコンテナイメージを更新および維持する必要があります。
-
head Pod と worker Pod の Ray バージョンを更新および維持する必要があります。
-
CPU、GPU、メモリなど、Ray クラスターのリソース要件を設定する必要があります。
-
Ray アプリケーションのステータスと可用性を監視する必要があります。
詳細については、「責任共有モデル」をご参照ください。