全部产品
Search
文档中心

Container Service for Kubernetes:Men-deploy Ray Cluster di ACK

更新时间:Dec 29, 2025

Ray adalah kerangka kerja terbuka yang terpadu untuk menskalakan aplikasi AI dan Python. Ray banyak digunakan di sektor pembelajaran mesin. Topik ini menjelaskan cara men-deploy Ray Cluster pada kluster ACK.

1. Buat kluster

Untuk informasi selengkapnya, lihat Buat kluster ACK yang dikelola. Untuk informasi selengkapnya tentang peningkatan kluster, lihat Tingkatkan kluster secara manual. Buat kluster ACK yang dikelola Pro yang memenuhi persyaratan berikut:

  • Versi Kubernetes kluster adalah v1.24 atau lebih baru.

  • Spesifikasi node: Buat node yang menyediakan setidaknya 8 vCPU dan memori 32 GB.

  • Anda dapat menggunakan spesifikasi minimum yang direkomendasikan di lingkungan pengujian. Di lingkungan produksi, spesifikasi bergantung pada kebutuhan aktual Anda. Jika perlu menggunakan node GPU, konfigurasikan node GPU tersebut.

    Untuk informasi selengkapnya tentang tipe instans yang didukung oleh ECS, lihat Family instans.

  • Anda telah terhubung ke kluster Kubernetes menggunakan kubectl dan telah menginstal kubectl di komputer Anda. Untuk informasi selengkapnya, lihat Dapatkan file KubeConfig kluster dan sambungkan ke kluster menggunakan kubectl.

(Opsional) Buat instans ApsaraDB for Redis

Topik ini menggunakan instans Redis untuk menerapkan toleransi kesalahan dan ketersediaan tinggi bagi Ray Cluster. Anda dapat membuat instans Redis sesuai kebutuhan. Buat instans Tair (Kompatibel dengan Redis OSS) yang memenuhi persyaratan berikut:

  • Instans Tair (Kompatibel dengan Redis OSS) ditempatkan di wilayah dan virtual private cloud (VPC) yang sama dengan kluster ACK yang dikelola Pro yang digunakan dalam topik ini. Untuk informasi selengkapnya, lihat Langkah 1: Buat instans.

  • Tambahkan daftar putih untuk mengizinkan akses dari blok CIDR VPC. Untuk informasi selengkapnya, lihat Langkah 2: Konfigurasi daftar putih.

  • Dapatkan titik akhir instans ApsaraDB for Redis. Kami menyarankan Anda menggunakan titik akhir VPC. Untuk informasi selengkapnya, lihat Lihat alamat koneksi.

  • Dapatkan kata sandi instans ApsaraDB for Redis. Untuk informasi selengkapnya, lihat Ubah atau atur ulang kata sandi.

2. Instal komponen Kuberay-Operator

Masuk ke Konsol Container Service for Kubernetes (ACK). Di panel navigasi sebelah kiri, klik Clusters. Klik nama kluster tersebut. Pada halaman detail kluster, klik berturut-turut Operations > Add-ons > Application Management > Click to Install Kuberay-Operator seperti yang ditunjukkan pada gambar berikut untuk menginstal komponen Kuberay-Operator untuk kluster tersebut.

image

3. Men-deploy Kluster Ray

Penting

Solusi untuk kegagalan pull Docker Hub.

Karena faktor ketidakstabilan seperti jaringan penyedia layanan, akselerator gambar mungkin gagal menarik gambar kontainer versi tertentu. Kami menyarankan agar Anda berhati-hati menggunakan gambar kontainer yang bergantung pada Docker Hub di lingkungan produksi. Gambar resmi Ray yang digunakan dalam contoh ini adalah rayproject/ray:2.36.1. Jika Anda tidak dapat menarik gambar ini, Anda dapat menggantinya dengan alamat gambar berlangganan dengan melakukan langkah-langkah berikut:

Jalankan perintah berikut untuk membuat Ray Cluster bernama myfirst-ray-cluster dan periksa status penerapannya.

  1. Jalankan perintah berikut untuk membuat sumber daya Ray Cluster.

    Perluas untuk melihat kode perintah lengkap

    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. Jalankan perintah berikut untuk memeriksa status penerapan

    1. Periksa status penerapan Ray Cluster.

      kubectl get raycluster

      Hasil yang diharapkan:

      NAME                  DESIRED WORKERS   AVAILABLE WORKERS   CPUS   MEMORY   GPUS   STATUS   AGE
      myfirst-ray-cluster   1                 1                   5      5G       0      ready    4m19s
    2. Periksa pod dari Ray Cluster.

      kubectl get pod

      Hasil yang diharapkan:

      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. Periksa layanan dari Ray Cluster.

      kubectl get svc

      Hasil yang diharapkan:

      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