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


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

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

GKE で Ray オペレータを有効にする方法については、GKE で Ray オペレータを有効にするをご覧ください。

GKE で Ray オペレータを使用する理由

GKE で Ray クラスタをデプロイして管理する場合は、Ray オペレータを使用することをおすすめします。GKE で Ray オペレータを実行すると、Ray の Python サポートと GKE のエンタープライズ グレードの信頼度、ポータビリティ、スケーラビリティを利用できます。

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

GKE で Ray オペレータが機能する仕組み

GKE クラスタで Ray オペレータを有効にすると、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 の共有責任をご覧ください。

次のステップ