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

Container Service for Kubernetes:ACK で Ray Cluster をデプロイする

最終更新日:Mar 20, 2026

Ray は、AI および Python アプリケーションをスケーリングするためのオープンソースの統合フレームワークです。Ray は、機械学習セクターで広く採用されています。このトピックでは、ACK クラスターに Ray Cluster をデプロイする方法について説明します。

1. クラスターの作成

詳細については、「ACK マネージドクラスターの作成」をご参照ください。クラスターのスペックアップの詳細については、「手動でのクラスターのスペックアップ」をご参照ください。次の要件を満たす ACK managed cluster Pro を作成します。

  • クラスターの Kubernetes バージョンは v1.24 以降です。

  • ノード仕様: 少なくとも 8 vCPU と 32 GB のメモリを提供するノードが作成されます。

  • テスト環境では、推奨される最小仕様を使用できます。本番環境では、仕様は実際の要件によって異なります。GPU ノードを使用する必要がある場合は、GPU ノードを設定します。

    ECS でサポートされているインスタンスタイプの詳細については、「インスタンスファミリー」をご参照ください。

  • kubectl を使用して Kubernetes クラスターに接続し、お使いのコンピューターに kubectl をインストール済みであること。詳細については、「クラスターの KubeConfig ファイルを取得し、kubectl を使用してクラスターに接続する」をご参照ください。

(オプション) ApsaraDB for Redis インスタンスの作成

このトピックでは、Redis インスタンスを使用して、Ray Cluster のフォールトトレランスと高可用性を実装します。必要に応じて Redis インスタンスを作成できます。次の要件を満たす Tair (Redis OSS-compatible) インスタンスを作成します。

  • このトピックで使用される ACK managed cluster Pro と同じリージョンおよび VPC (仮想プライベートクラウド) に Tair (Redis OSS-compatible) インスタンスがデプロイされます。詳細については、「手順 1: インスタンスの作成」をご参照ください。

  • VPC CIDR ブロックからのアクセスを許可するホワイトリストを追加します。詳細については、「手順 2: ホワイトリストの設定」をご参照ください。

  • ApsaraDB for Redis インスタンスのエンドポイントを取得します。VPC エンドポイントを使用することをお勧めします。詳細については、「エンドポイントの表示」をご参照ください。

  • ApsaraDB for Redis インスタンスのパスワードを取得します。詳細については、「パスワードの変更またはリセット」をご参照ください。

2. Kuberay-Operator コンポーネントのインストール

Container Service for Kubernetes (ACK) コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。クラスターの名前をクリックします。クラスター詳細ページで、次の図に示すように、[操作] > [アドオン] > [アプリケーション管理] > [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 のサービスを確認します。

      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