このページでは、Google Kubernetes Engine(GKE)で実行されている Ray クラスタのログと指標を収集するように Google Kubernetes Engine(GKE)を構成する方法と、Cloud Logging と Cloud Monitoring で Ray のログと指標を表示する方法について説明します。
Ray と KubeRay の詳細については、Ray on Google Kubernetes Engine(GKE)の概要をご覧ください。
始める前に
作業を始める前に、次のタスクが完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、gcloud components updateコマンドを実行して最新のバージョンを取得します。以前のバージョンの gcloud CLI では、このドキュメントのコマンドを実行できない場合があります。
要件と制限事項
- Ray クラスタのロギングを有効にする前に、既存の GKE クラスタでシステムとワークロードのロギングを有効にする必要があります。
- 既存の GKE クラスタで Ray クラスタのログ収集を有効にすると、GKE は既存の Ray Pod ではなく、新しく作成された Ray Pod からのみログを収集します。
- GKE Standard クラスタの場合、Ray クラスタの指標の収集を有効にするには、Google Cloud Managed Service for Prometheus を有効にする必要があります。Autopilot クラスタの場合、Google Cloud Managed Service for Prometheus はデフォルトで有効になっています。
- Ray クラスタ内の Ray コンテナで ray-logsという名前のボリュームを指定しないでください。指定すると、GKE はログを収集しません。
Ray クラスタのログ収集を有効にする
Ray クラスタのログ収集は、新規または既存の GKE Autopilot または Standard クラスタで有効にできます。GKE が Ray クラスタから収集する Ray ログは、コンテナログとして分類されます。これには、Ray クラスタ ヘッダーノードとワーカーノードで生成されたすべてのログが含まれます。
Ray クラスタに対するログ収集を有効にするには、 Google Cloud コンソールまたは gcloud CLI を使用します。
コンソール
- Google Cloud コンソールで Google Kubernetes Engine ページに移動します。 
- [作成] をクリックし、[Standard] セクションまたは [Autopilot] セクションで [構成] をクリックします。 
- ナビゲーション パネルの [クラスタ] の下の [機能] をクリックします。 
- [オペレーション] セクションで、[System and Workloads] チェックボックスがオンになっていることを確認します。 
- [AI と ML] セクションで、[Ray Operator の有効化] を選択してから、[Ray クラスタのログ収集を有効にする] を選択します。 
- [作成] をクリックします。 
Standard クラスタの場合は、Google Cloud Managed Service for Prometheus も有効にする必要があります。
gcloud
--addons=RayOperator オプションと --enable-ray-cluster-logging オプションを使用してクラスタを作成します。
gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --addons=RayOperator \
    --enable-ray-cluster-logging
次のように置き換えます。
- CLUSTER_NAME: 新しいクラスタの名前。
- LOCATION: 新しいクラスタのロケーション(us-central1 など)。
既存のクラスタで Ray クラスタのログ収集を有効にするには、--addons=RayOperator オプションと --enable-ray-cluster-logging オプションを指定して gcloud container clusters update コマンドを使用します。
Ray ログを確認する
Logging を使用して、GKE で実行されている Ray クラスタから収集されたログを確認できます。
- Google Cloud コンソールの [Cloud Logging] ページに移動します。 
- クエリエディタを開き、クエリエディタに式を貼り付けます。 
- [クエリを実行] をクリックします。 
ログ エクスプローラでは、次のサンプルクエリを使用できます。
| クエリ / フィルタの名前 | 式 | 
|---|---|
| すべての Ray ログ | resource.type="k8s_container" labels."k8s-pod/ray_io/is-ray-node"="yes" | 
| すべての Ray ヘッドログ | resource.type="k8s_container" labels."k8s-pod/ray_io/node-type"="head" | 
| Ray クラスタ内のすべてのログ | resource.type="k8s_container" labels."k8s-pod/ray_io/cluster"="RAY_CLUSTER_NAME" | 
| Ray ジョブのすべてのログ | resource.type="k8s_container" jsonPayload.ray_submission_id="RAY_JOB_SUBMISSION_ID" | 
Ray クラスタの指標の収集を有効にする
新規または既存の GKE Autopilot または Standard クラスタで Ray クラスタの指標の収集を有効にできます。
Ray クラスタの指標の収集を有効にすると、GKE は既存の Ray クラスタと新しい Ray クラスタから指標を収集します。GKE は、Ray によってエクスポートされたすべてのシステム指標を Prometheus 形式で収集します。
Ray クラスタの指標の収集は、Google Cloud コンソールまたは gcloud CLI を使用して有効にすることができます。
コンソール
- Google Cloud コンソールで Google Kubernetes Engine ページに移動します。 
- [作成] をクリックし、[Standard] セクションまたは [Autopilot] セクションで [構成] をクリックします。 
- ナビゲーション パネルの [クラスタ] の下の [機能] をクリックします。 
- [オペレーション] セクションで、[System and Workloads] チェックボックスがオンになっていることを確認します。 
- [AI と ML] セクションで、[Ray Operator の有効化] を選択してから、[Ray クラスタの指標の収集を有効にする] を選択します。 
- [作成] をクリックします。 
Standard クラスタの場合は、Google Cloud Managed Service for Prometheus も有効にする必要があります。
gcloud
--addons=RayOperator オプションと --enable-ray-cluster-monitoring オプションを使用してクラスタを作成します。
gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --addons=RayOperator \
    --enable-ray-cluster-monitoring
次のように置き換えます。
- CLUSTER_NAME: 新しいクラスタの名前。
- LOCATION: 新しいクラスタのロケーション(us-central1 など)。
既存のクラスタで Ray クラスタのログ収集を有効にするには、--addons=RayOperator オプションと --enable-ray-cluster-monitoring オプションを指定して gcloud container clusters update コマンドを使用します。
Ray の指標を確認する
Google Cloud Managed Service for Prometheus には、事前構成された Ray on GKE の概要のダッシュボードが用意されています。このダッシュボードには、主要な Ray 指標が一元的に表示されます。これは、GKE で Ray クラスタのモニタリングを迅速に開始するうえでおすすめの方法です。
Ray クラスタに対して指標の収集を有効にすると、このダッシュボードにデータが自動的に入力されます。
GKE 上で動作している Ray クラスタから収集された個々の指標を確認する場合は、次の手順で操作します。
- Google Cloud コンソールの [Metrics Explorer] ページに移動します。 
- [指標を選択] フィールドで、Ray 固有の指標を検索できます。通常、これらの指標には - prometheus/ray_という接頭辞が付いています。たとえば、- prometheus/ray_worker_cpu_seconds_totalや- prometheus/ray_memory_bytes_maxなどがあります。
- 適切なリソースタイプ( - k8s_pod、- k8s_containerなど)を選択し、Ray クラスタに関連するラベル(- ray.io/clusterなど)でフィルタ処理することで、検索結果を絞り込むことができます。
次のステップ
- Ray on Kubernetes について学習する。
- KubeRay のドキュメントを確認する。