Ray は、AI ワークロードの管理、実行、最適化のために設計されたオープンソースフレームワークです。 Ray は、データ処理、モデルのトレーニング、モデルの提供など、さまざまな AI ワークロードのインフラストラクチャリソースを調整するための統合された柔軟なフレームワークを使用します。 Ray は、開発者が基盤となるインフラストラクチャの複雑な構成を気にすることなく、並列処理および分散コンピューティングワークロードのコードを効率的に記述できるシンプルな API を提供します。 Ray は、並列処理、アクターモデル、分散オブジェクトストレージなど、さまざまなプログラミングパラダイムをサポートしています。 さらに、Ray を活用して、拡張可能な AI アプリケーションと Python アプリケーションを構築できます。 Ray は機械学習業界で広く使用されています。
Ray の概要
Ray は、AI アプリケーションと Python アプリケーションをスケーリングするためのオープンソースの統合フレームワークです。 並列処理および分散 Python アプリケーションを効率的に開発できるように、分散コンピューティングを簡素化する API を提供します。 Ray は機械学習分野で広く採用されています。 Ray の統合コンピューティングフレームワークは、Ray AI ライブラリ、Ray Core、Ray クラスタのレイヤーで構成されています。 Ray の詳細については、Ray をご覧ください。
KubeRay の概要
KubeRay は、Kubernetes 上での Ray アプリケーションのデプロイと管理を簡素化するオープンソースの Kubernetes オペレーターです。 KubeRay は、Kubernetes 上で Ray クラスタを実行するために特化した宣言型の Kubernetes API を提供し、RayCluster、RayJob、RayService のカスタムリソースを提供します。 これらのリソースは、Kubernetes 上でさまざまなワークロードを便利に実行するのに役立ちます。
[ACK 上の Ray]
Container Service for Kubernetes ( ACK ) は、世界で初めて Certified Kubernetes Conformance Program に参加したサービスの 1 つです。 ACK は、高パフォーマンスのコンテナ化アプリケーション管理サービスを提供し、エンタープライズクラスのコンテナ化アプリケーションのライフサイクル管理をサポートします。 クラウドで ACK クラスタを作成するのと同じ方法で、KubeRay を使用して ACK クラスタに Ray クラスタを作成できます。
Ray クラスタは、Simple Log Service、Managed Service for Prometheus、ApsaraDB for Redis と連携して、ログ管理、可観測性、可用性を向上させることができます。
Ray オートスケーラーと ACK オートスケーラーを一緒に使用して、計算リソースをオンデマンドでスケーリングできます。

KubeRay オペレーターのインストール方法の詳細については、「Kuberay-Operator のインストール」をご参照ください。
Kuberay-Operator
Ray クラスタを迅速にデプロイおよび管理するには、ACK コンソールの [アドオン] ページから ACK クラスタに KubeRay をインストールすることをお勧めします。 ACK は、オープンソースの KubeRay オペレーターに基づいて開発された Kuberay-Operator コンポーネントを提供します。 KubeRay を使用すると、Ray クラスタはスケジューリング、弾性クォータ、優先順位ベースのリソーススケジューリングなどの ACK の機能を活用できます。 さらに、Ray クラスタを Simple Log Service、Managed Service for Prometheus、Object Storage Service ( OSS ) などの Alibaba Cloud サービスと統合できます。
ACK コンソールの [アドオン] ページから ACK クラスタに Kuberay-Operator をインストールすると、ACK は Kuberay-Operator を自動的にインストールおよび管理します。 さらに、ACK はクラスタのデータプレーンに RayCluster、RayJob、RayService リソースを作成します。

カスタムリソース
RayCluster
RayCluster を作成して、ACK クラスタのポッド上に Ray クラスタを構築できます。 Ray クラスタは、ヘッドポッドと複数のワーカーポッドで構成されます。 RayCluster カスタムリソースの詳細については、「RayCluster の構成」をご覧ください。

RayJob
RayJob ( K8sJobMode モード ) は、RayCluster と Kubernetes バッチジョブを管理します。 RayCluster は、Kubernetes ポッド上に Ray クラスタを構築して計算リソースを提供するために使用されます。 Kubernetes バッチジョブは、
ray job submitコマンドを実行して、Ray ジョブを RayCluster に送信します。 RayJob カスタムリソースの詳細については、「RayJob の構成」をご覧ください。
RayService
RayService は、RayCluster と Ray Serve アプリケーションを管理します。 RayCluster は、Kubernetes ポッド上に Ray クラスタを構築して計算リソースを提供するために使用されます。 Ray Serve アプリケーションは、モデルのデプロイと推論のために Ray クラスタにデプロイされます。
ACK 上の Ray の共同責任
KubeRay を使用して ACK クラスタで Ray ワークロードを実行する場合は、共同責任の原則に従う必要があります。 以下は、ACK 上の Ray の共同責任モデルについて説明しています。
Alibaba Cloud の責任
Kuberay-Operator は ACK によって管理されます。 ACK は Kuberay-Operator のセキュリティ保護を提供します。
ACK は、Kuberay-Operator で使用されるイメージがセキュリティ強化基準に準拠していることを保証し、潜在的な脆弱性を防ぎます。
ACK は、Kuberay-Operator の安定性と可用性を保証します。
ACK は、Kuberay-Operator のバージョンを維持して可用性を確保します。
ACK は、Kuberay-Operator の RayCluster、RayJob、RayService カスタムリソースの管理を有効にします。
お客様の責任
RayCluster、RayJob、RayService カスタムリソースを使用して ACK クラスタに Ray クラスタとアプリケーションをデプロイおよび管理する場合は、Ray アプリケーションのセキュリティ保護と構成の更新について責任を負います。
Ray クラスタの保護のベストプラクティスに従う必要があります。
Ray ヘッドポッドとワーカーポッドのデプロイに使用されるコンテナイメージを更新および維持する必要があります。
Ray ヘッドポッドとワーカーポッドの Ray バージョンを更新および維持する必要があります。
CPU、GPU、メモリリソースの要件など、Ray クラスタのリソース要件を適切に構成する必要があります。
Ray アプリケーションの状態を監視し、Ray アプリケーションの可用性を確保する必要があります。
詳細については、「共同責任モデル」をご参照ください。