全部產品
Search
文件中心

Container Service for Kubernetes:在ACK中安裝KubeRay組件

更新時間:Jan 14, 2026

本文將指導您在ACK託管叢集Pro版上部署KubeRay Operator組件,並整合阿里雲Log ServiceSLS與Prometheus監控,從而增強日誌管理、系統可觀測性及高可用性。通過Kubernetes自訂資源(CR),您可高效管理Ray叢集與應用。

前提條件

關於如何建立叢集,請參見建立ACK託管叢集;如需升級叢集版本,請參見手動升級叢集。建立ACK託管叢集Pro版且符合以下要求。

  • 叢集版本:v1.24及以上。

  • 節點規格:已配置一台8 CPU 32 GB規格及以上的節點。

  • 測試環境可使用推薦的最低規格:生產環境中需以實際情況為準,如需使用GPU節點,請配置GPU節點。

    關於ECS支援的執行個體規格,請參見執行個體規格類型系列

  • 已通過kubectl串連Kubernetes叢集,且已在本地安裝kubectl。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集

安裝KubeRay組件

登入Container Service管理主控台,在左側導覽列選擇叢集列表單擊目的地組群名稱,進入叢集詳情頁面,如下圖所示按照序號依次單擊營運管理 > 組件管理 > 應用管理 > 點擊安裝Kuberay-Operator,為目的地組群安裝Kuberay-Operator組件。

image

KubeRay啟用日誌功能

  1. 進入對應叢集,依次單擊營運管理 > 日誌中心 > 控制面組件日誌 > 開啟組件日誌

  2. 在下拉式功能表中,選擇kuberay-operator

RayCluster啟用日誌收集查看功能

您可以在Ray Cluster中整合阿里雲Log ServiceSLS,實現日誌的持久化儲存。

  1. 執行以下命令,建立一個全域的AliyunLogConfig資來源物件,使叢集中的Logtail組件自動收集Ray Cluster的Pod產生的日誌,並將其存入對應的SLS Project中。

    展開查看完整命令代碼

    cat <<EOF | kubectl apply -f -
    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      name: rayclusters
      namespace: kube-system
    spec:
       # 設定Logstore名稱。如果您所指定的Logstore不存在,Log Service會自動建立。
      logstore: rayclusters
      # 設定Logtail配置。
      logtailConfig:
        # 設定採集的資料來源類型。採集文本日誌時,需設定為file。
        inputType: file
        # 設定Logtail配置的名稱,必須與資源名(metadata.name)相同。
        configName: rayclusters
        inputDetail:
          # 指定通過極簡模式採集文本日誌。
          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

    在收集的日誌中增加Tag索引,便於尋找日誌。預設新增_raycluster_name__node_type_兩個Tag。

    關於AliyunLogConfig參數配置的更多資訊,請參見通過DaemonSet-CRD方式採集容器日誌。該服務收費,具體費用,請參見計費概述

  2. 查看Ray Cluster日誌資訊流程。

    登入Container Service管理主控台,在左側導覽列選擇叢集列表單擊目的地組群名稱,進入叢集詳情頁面,如下圖所示按照序號依次單擊叢集資訊 > 基本資料 > 叢集資源,單擊Log Service Project右側的連結進入對應的SLS Projectimage

  3. 在Project中選擇rayclusters對應的Logstore並查看日誌內容。

    您可以根據Tag,例如_raycluster_name_,查看不同Ray Cluster的日誌。

    image

RayCluster啟用監控功能

您可以在Ray Cluster中使用阿里雲Prometheus監控能力,關於Prometheus監控功能的更多資訊,請參見接入與配置阿里雲Prometheus監控。相關計費資訊,請參見Prometheus 執行個體計費

您可執行以下命令部署Pod Monitor和Service Monitor資源,用於收集Ray Cluster 的Metric資料。

  1. 執行以下命令部署Pod Monitor資源。

    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 can only detect PodMonitor with this label.
        release: prometheus
        #ray.io/cluster: raycluster-kuberay # $RAY_CLUSTER_NAME: "kubectl get rayclusters.ray.io"
    spec:
      namespaceSelector:
        any: true
      jobLabel: ray-workers
      # Only select Kubernetes Pods with "matchLabels".
      selector:
        matchLabels:
          ray.io/node-type: worker
      # A list of endpoints allowed as part of this PodMonitor.
      podMetricsEndpoints:
      - port: metrics
        relabelings:
        - action: replace
          regex: (.+)
          replacement: $1
          separator: ;
          sourceLabels:
            - __meta_kubernetes_pod_label_ray_io_cluster
          targetLabel: ray_io_cluster
          
    
  2. 執行以下命令部署Service Monitor資源。

    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 can only detect ServiceMonitor with this label.
        release: prometheus
    spec:
      namespaceSelector:
        any: true
      jobLabel: ray-head
      # Only select Kubernetes Services with "matchLabels".
      selector:
        matchLabels:
          ray.io/node-type: head
      # A list of endpoints allowed as part of this ServiceMonitor.
      endpoints:
        - port: metrics
          path: /metrics
      targetLabels:
      - ray.io/cluster
    
  3. 登入控制台查看資源部署接入情況。

    1. 登入ARMS控制台在左側導覽列單擊接入中心,在基礎設施頁面,如下圖所示按照序號依次單擊②搜尋Ray > ③選中Ray,然後在Ray 可觀測面板選擇上文建立的叢集,單擊確定image

    2. 接入成功後,單擊接入管理,跳轉至ARMS接入管理頁面。在組件管理頁簽,單擊組件類型地區的大盤,選擇Ray Clusterimage

    3. 在大盤中選擇對應NamespaceRayClusterNameSessionName進行過濾,查看Ray Cluster運行中任務的監控資料。image.png