すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ACK に KubeRay をインストールする

最終更新日:Nov 09, 2025

このトピックでは、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 を使用するには、チケットを送信してください。

image

KubeRay のログ収集の有効化

  1. クラスター詳細ページに移動し、[操作] > [ログセンター] > [コントロールプレーンコンポーネントログ] > [コンポーネントログ収集の有効化] を選択します。

  2. ドロップダウンリストから kuberay-operator を選択します。

Ray クラスターのログ収集の有効化

Simple Log Service を Ray クラスターと統合して、ログを永続化できます。

  1. 次のコマンドを実行してグローバル AliyunLogConfig オブジェクトを作成し、ACK クラスターの Logtail コンポーネントを有効にして Ray クラスターの Pod によって生成されたログを収集し、Simple Log Service プロジェクトにログを配信します。

    サンプルコードの表示

    cat <<EOF | kubectl apply -f -
    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      name: rayclusters
      namespace: kube-system
    spec:
       # Logstore の名前。指定した Logstore が存在しない場合、Simple Log Service は自動的に Logstore を作成します。
      logstore: rayclusters
      # Logtail を設定します。
      logtailConfig:
        # データソースのタイプ。テキストログを収集する場合は、値を file に設定する必要があります。
        inputType: file
        # Logtail 構成の名前。名前は、metadata.name で指定されたリソース名と同じである必要があります。
        configName: rayclusters
        inputDetail:
          # Logtail を設定して、シンプルモードでテキストログを収集します。
          logType: common_reg_log
          # ログファイルのパス。
          logPath: /tmp/ray/session_*-*-*_*/logs
          # ログファイルの名前。アスタリスク (*) や疑問符 (?) などのワイルドカード文字を使用できます (例: log_*.log)。
          filePattern: "*.*"
          # コンテナーのテキストログを収集する場合は、dockerFile を true に設定する必要があります。
          dockerFile: true
          # コンテナーのフィルター条件。
          advanced:
            k8s:
              IncludeK8sLabel:
                ray.io/is-ray-node: "yes"
              ExternalK8sLabelTag:
                ray.io/cluster: "_raycluster_name_"
                ray.io/node-type : "_node_type_"
    EOF

    パラメーター

    説明

    logPath

    Pod の /tmp/ray/session_*-*-*_*/logs ディレクトリにあるすべてのログを収集します。カスタムパスを指定できます。

    advanced.k8s.ExternalK8sLabelTag

    収集されたログにタグを追加して、取得を容易にします。デフォルトでは、_raycluster_name_ タグと _node_type_ タグが追加されます。

    AliyunLogConfig パラメーターの詳細については、「CRD を使用して DaemonSet モードでコンテナログを収集する」をご参照ください。Simple Log Service は有料サービスです。詳細については、「課金の概要」をご参照ください。

  2. Ray クラスターから収集されたログを表示します。

    ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。管理するクラスターの名前をクリックします。クラスター詳細ページで、次の図の吹き出しを順番にクリックします。[クラスター情報] > [基本情報] > [クラスターリソース] を選択します。次に、[Log Service プロジェクト] の右側にあるハイパーリンクをクリックして、[SLS プロジェクト] の詳細ページに移動します。image

  3. rayclusters に対応する Logstore を選択し、ログの内容を表示します。

    _raycluster_name_ などのタグに基づいて、さまざまな Ray クラスターのログを表示できます。

    image

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 クラスターからメトリックを収集します。

  1. 次のコマンドを実行して 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
          
    
  2. 次のコマンドを実行して 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/cluster
    
  3. Application Real-Time Monitoring Service (ARMS) コンソールにログインし、リソース統合情報を表示します。

    1. ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[インテグレーションセンター] をクリックします。[インフラストラクチャ] ページで、次の図に示すように、検索ボックス (②) に Ray と入力し、Ray (③) をクリックします。次に、[Ray 可観測性] パネルで、作成したクラスターを選択し、[OK] をクリックします。image

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

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