全部產品
Search
文件中心

Container Service for Kubernetes:在ACK中部署Ray Cluster

更新時間:Mar 20, 2026

開源架構Ray支援構建可擴充的人工智慧(AI)和Python應用程式,廣泛應用於機器學習領域。本文介紹了如何在ACK叢集上部署Ray Cluster。

1. 建立叢集

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

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

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

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

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

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

(可選)建立雲資料庫Tair

本文使用Redis執行個體實現Ray Cluster的容錯性和高可用性,您可按需進行建立。建立阿里雲雲資料庫 Tair(相容 Redis)執行個體,且滿足以下要求。

  • 建立的雲資料庫 Tair(相容 Redis)執行個體需要與本文使用的ACK託管叢集Pro版處於同Region、同VPC。具體操作,請參見步驟1:建立執行個體

  • 添加白名單分組,允許VPC位址區段訪問。具體操作,請參見步驟2:設定白名單

  • 獲得Redis執行個體的串連地址(推薦使用專有串連地址)。具體操作,請參見查看串連地址

  • 獲得Redis執行個體的密碼。具體操作,請參見修改或重設密碼

2. 安裝Kuberay-Operator組件

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

image

3. 部署Ray Cluster

重要

Docker Hub拉取失敗解決方案

由於電訊廠商網路等不穩定因素可能導致鏡像加速器無法成功拉取到指定版本的容器鏡像,建議您在生產環境中謹慎使用依賴於Docker Hub的容器鏡像。本文樣本中使用的Ray官方鏡像:rayproject/ray:2.36.1,若您無法拉取,您可參照以下操作,替換成訂閱後的鏡像地址。

執行以下命令建立名為myfirst-ray-cluster的Ray Cluster,並查看部署情況。

  1. 執行以下命令建立Ray Cluster資源。

    展開查看完整命令代碼

    cat <<EOF | kubectl apply -f -
    apiVersion: ray.io/v1
    kind: RayCluster
    metadata:
      name: myfirst-ray-cluster
      namespace: default
    spec:
      suspend: false
      autoscalerOptions:
        env: []
        envFrom: []
        idleTimeoutSeconds: 60
        imagePullPolicy: Always
        resources:
          limits:
            cpu: 2000m
            memory: 2024Mi
          requests:
            cpu: 2000m
            memory: 2024Mi
        securityContext: {}
        upscalingMode: Default
      enableInTreeAutoscaling: false
      headGroupSpec:
        rayStartParams:
          dashboard-host: 0.0.0.0
          num-cpus: "0"
        serviceType: ClusterIP
        template:
          spec:
            containers:
            - image: rayproject/ray:2.36.1
              imagePullPolicy: Always
              name: ray-head
              resources:
                limits:
                  cpu: "4"
                  memory: 4G
                requests:
                  cpu: "1"
                  memory: 1G
      workerGroupSpecs:
      - groupName: work1
        maxReplicas: 1000
        minReplicas: 0
        numOfHosts: 1
        rayStartParams: {}
        replicas: 1
        template:
          spec:
            containers:
            - image: rayproject/ray:2.36.1
              imagePullPolicy: Always
              name: ray-worker
              resources:
                limits:
                  cpu: "4"
                  memory: 4G
                requests:
                  cpu: "4"
                  memory: 4G
    EOF
  2. 執行以下命令查看執行部署情況

    1. 查看Ray Cluster部署情況。

      kubectl get raycluster

      預期輸出:

      NAME                  DESIRED WORKERS   AVAILABLE WORKERS   CPUS   MEMORY   GPUS   STATUS   AGE
      myfirst-ray-cluster   1                 1                   5      5G       0      ready    4m19s
    2. 查看Ray Cluster對應Pod。

      kubectl get pod

      預期輸出:

      NAME                                     READY   STATUS    RESTARTS   AGE
      myfirst-ray-cluster-head-5q2hk           1/1     Running   0          4m37s
      myfirst-ray-cluster-work1-worker-zkjgq   1/1     Running   0          4m31s
    3. 查看Ray Cluster對應Service。

      kubectl get svc

      預期輸出:

      NAME                           TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                                         AGE
      kubernetes                     ClusterIP   192.168.0.1   <none>        443/TCP                                         21d
      myfirst-ray-cluster-head-svc   ClusterIP   None          <none>        10001/TCP,8265/TCP,8080/TCP,6379/TCP,8000/TCP   6m57s