このトピックでは、ACK マネージド Pro クラスターに KubeRay Operator をインストールする方法と、KubeRay の Simple Log Service および Managed Service for Prometheus を有効にする方法について説明します。これにより、ログ管理、システムの可観測性、およびシステムの可用性が向上します。Kubernetes カスタムリソースを作成して、Ray クラスターとアプリケーションを管理できます。
前提条件
詳細については、「ACK マネージドクラスターを作成する」をご参照ください。クラスターのアップグレードの詳細については、「クラスターを手動でアップグレードする」をご参照ください。次の要件を満たすACK マネージドクラスター Pro を作成します。
クラスターの Kubernetes バージョンが v1.24 以降であること。
ノード仕様: 8 vCPU と 32 GB 以上のメモリを提供するノードが作成されていること。
テスト環境では、推奨される最小仕様を使用できます。本番環境では、仕様は実際の要件によって異なります。GPU ノードを使用する必要がある場合は、GPU ノードを設定します。
ECS でサポートされているインスタンスタイプの詳細については、「インスタンスファミリー」をご参照ください。
kubectl を使用して Kubernetes クラスターに接続し、お使いのコンピューターに kubectl をインストール済みであること。詳細については、「クラスターの KubeConfig ファイルを取得し、kubectl を使用してクラスターに接続する」をご参照ください。
KubeRay のインストール
Container Service for Kubernetes (ACK) コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。クラスターの名前をクリックします。クラスター詳細ページで、次の図に示すように、[操作] > [アドオン] > [アプリケーション管理] > [Kuberay-Operator のインストール] の順にクリックして、クラスターに Kuberay-Operator コンポーネントをインストールします。
Kuberay-Operator は招待プレビュー中です。Kuberay-Operator を使用するには、チケットを送信してください。

KubeRay のログ収集の有効化
クラスター詳細ページに移動し、[操作] > [ログセンター] > [コントロールプレーンコンポーネントログ] > [コンポーネントログ収集の有効化] を選択します。
ドロップダウンリストから kuberay-operator を選択します。
Ray クラスターのログ収集の有効化
Simple Log Service を Ray クラスターと統合して、ログを永続化できます。
次のコマンドを実行してグローバル AliyunLogConfig オブジェクトを作成し、ACK クラスターの Logtail コンポーネントを有効にして Ray クラスターの Pod によって生成されたログを収集し、Simple Log Service プロジェクトにログを配信します。
パラメーター
説明
logPathPod の
/tmp/ray/session_*-*-*_*/logsディレクトリにあるすべてのログを収集します。カスタムパスを指定できます。advanced.k8s.ExternalK8sLabelTag収集されたログにタグを追加して、取得を容易にします。デフォルトでは、
_raycluster_name_タグと_node_type_タグが追加されます。AliyunLogConfig パラメーターの詳細については、「CRD を使用して DaemonSet モードでコンテナログを収集する」をご参照ください。Simple Log Service は有料サービスです。詳細については、「課金の概要」をご参照ください。
Ray クラスターから収集されたログを表示します。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。管理するクラスターの名前をクリックします。クラスター詳細ページで、次の図の吹き出しを順番にクリックします。[クラスター情報] > [基本情報] > [クラスターリソース] を選択します。次に、[Log Service プロジェクト] の右側にあるハイパーリンクをクリックして、[SLS プロジェクト] の詳細ページに移動します。

rayclustersに対応する Logstore を選択し、ログの内容を表示します。_raycluster_name_などのタグに基づいて、さまざまな Ray クラスターのログを表示できます。
Ray クラスターのモニタリングの有効化
Ray クラスターに対して Managed Service for Prometheus を有効にできます。Managed Service for Prometheus の詳細については、「Managed Service for Prometheus を使用する」をご参照ください。Managed Service for Prometheus の課金の詳細については、「Managed Service for Prometheus インスタンスの課金」をご参照ください。
PodMonitor と ServiceMonitor を作成して、Ray クラスターからメトリックを収集します。
次のコマンドを実行して PodMonitor を作成します。
apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: annotations: arms.prometheus.io/discovery: 'true' arms.prometheus.io/resource: arms name: ray-workers-monitor namespace: arms-prom labels: # `release: $HELM_RELEASE`: Prometheus はこのラベルを持つ PodMonitor のみを検出できます。 release: prometheus #ray.io/cluster: raycluster-kuberay # $RAY_CLUSTER_NAME: "kubectl get rayclusters.ray.io" spec: namespaceSelector: any: true jobLabel: ray-workers # "matchLabels" を持つ Kubernetes Pod のみを選択します。 selector: matchLabels: ray.io/node-type: worker # この PodMonitor の一部として許可されるエンドポイントのリスト。 podMetricsEndpoints: - port: metrics relabelings: - action: replace regex: (.+) replacement: $1 separator: ; sourceLabels: - __meta_kubernetes_pod_label_ray_io_cluster targetLabel: ray_io_cluster次のコマンドを実行して ServiceMonitor を作成します。
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: annotations: arms.prometheus.io/discovery: 'true' arms.prometheus.io/resource: arms name: ray-head-monitor namespace: arms-prom labels: # `release: $HELM_RELEASE`: Prometheus はこのラベルを持つ ServiceMonitor のみを検出できます。 release: prometheus spec: namespaceSelector: any: true jobLabel: ray-head # "matchLabels" を持つ Kubernetes Service のみを選択します。 selector: matchLabels: ray.io/node-type: head # この ServiceMonitor の一部として許可されるエンドポイントのリスト。 endpoints: - port: metrics path: /metrics targetLabels: - ray.io/clusterApplication Real-Time Monitoring Service (ARMS) コンソールにログインし、リソース統合情報を表示します。
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[インテグレーションセンター] をクリックします。[インフラストラクチャ] ページで、次の図に示すように、検索ボックス (②) に Ray と入力し、Ray (③) をクリックします。次に、[Ray 可観測性] パネルで、作成したクラスターを選択し、[OK] をクリックします。

ACK クラスターが Managed Service for Prometheus と統合された後、[統合管理] をクリックして ARMS 統合管理ページに移動します。[コンポーネント管理] タブの [ダッシュボード] セクションで [コンポーネントタイプ] をクリックし、次に [Ray クラスター] をクリックします。

ダッシュボードで、[Namespace]、[RayClusterName]、および [SessionName] を指定して、Ray クラスターで実行されているタスクのモニタリングデータをフィルターします。
