Ray on Google Kubernetes Engine(GKE)について


このページでは、Google Kubernetes Engine(GKE)に Ray クラスタとアプリケーションをデプロイして管理するための Ray Operator と関連するカスタム リソースの概要について説明します。

Ray は、AI/ML と Python アプリケーションをスケーリングするためのオープンソースの統合コンピューティング フレームワークです。Ray には、AI/ML のコンピューティング ランタイムを複数のコンピューティング ノードに分散するための一連のライブラリが用意されています。

GKE で Ray Operator を有効にする方法については、GKE で Ray Operator を有効にするをご覧ください。

GKE で Ray Operator を使用する理由

GKE で Ray クラスタをデプロイして管理する場合は、Ray Operator を使用することをおすすめします。GKE で Ray Operator を実行すると、Ray の Python サポートと GKE のエンタープライズ グレードの信頼性、ポータビリティ、スケーラビリティのメリットが得られます。

GKE の Ray Operator は KubeRay に基づいています。KubeRay は、Ray クラスタの管理用に特別に設計された宣言型 Kubernetes API を提供します。つまり、GKE 上の他のコンテナ化されたワークロードを使用して Ray Deployment をプロビジョニング、スケーリング、管理できます。

GKE で Ray Operator がどのように機能するか

GKE クラスタで Ray Operator を有効にすると、GKE は KubeRay オペレータを自動的にインストールしてホストします。

KubeRay は、Kubernetes 上の Ray Deployment を管理するための Kubernetes カスタム リソースを提供します。たとえば、次のものがあります。

RayCluster カスタム リソース

RayCluster カスタム リソースを使用すると、GKE が Kubernetes Pod としてデプロイする Ray クラスタを指定できます。通常、Ray クラスタは 1 つのヘッド Pod と複数のワーカー Pod で構成されます。

RayJob カスタム リソース

RayJob カスタム リソースを使用すると、単一の Ray ジョブを実行できます。KubeRay は、ジョブのコンピューティング リソースを提供する RayCluster を作成し、RayCluster のヘッド Pod に Ray ジョブを送信する Kubernetes Job を作成します。

リソースを効率的に管理するには、ジョブが正常に完了した後に RayCluster を自動的にクリーンアップするように KubeRay を構成します。

RayService カスタム リソース

RayService カスタム リソースを使用すると、モデル サービングや推論のアプリケーションなど、Ray Serve アプリケーションを構成できます。KubeRay は RayCluster を作成してコンピューティング リソースを提供し、Ray Serve 構成で指定されているように Ray Serve アプリケーションをデプロイします。

Ray on GKE の共有責任

Ray オペレーターを使用して GKE で Ray ワークロードを実行する場合は、Google Cloud とお客様の責任の分担を理解することが重要です。

Google の責任

  • KubeRay オペレーターの信頼性と稼働時間を維持する。
  • KubeRay オペレーターのバージョン アップグレードの管理。
  • RayCluster、RayJob、RayService カスタム リソースを管理するための KubeRay 固有の機能。

お客様の責任

  • Ray ヘッド Pod と Ray ワーカー Pod に使用されるコンテナ イメージの維持。
  • Ray ヘッド Pod と Ray ワーカー Pod のバージョニングとアップグレードの維持。
  • Ray クラスタのリソース要件(CPU、GPU、メモリなど)の構成。
  • Ray クラスタの保護に関するベスト プラクティスに従う。
  • Ray アプリケーションの信頼性とモニタリング。

詳細については、GKE の共有責任をご覧ください。

次のステップ