全部产品
Search
文档中心

Container Service for Kubernetes:Aktifkan fitur penjadwalan

更新时间:Jan 13, 2026

Dalam ACK managed cluster Pro, Anda dapat menetapkan label penjadwalan ke node GPU untuk mengoptimalkan pemanfaatan sumber daya dan menjadwalkan aplikasi secara tepat. Label tersebut menentukan properti seperti akses eksklusif, penggunaan bersama, kesadaran topologi, serta model kartu GPU tertentu.

Ikhtisar label penjadwalan

Label penjadwalan GPU mengidentifikasi model GPU dan kebijakan alokasi sumber daya guna mendukung manajemen sumber daya detail halus serta penjadwalan yang efisien.

Mode penjadwalan

Nilai label

Skenario

Penjadwalan eksklusif (Default)

ack.node.gpu.schedule: default

 Tugas-tugas yang kritis terhadap kinerja dan memerlukan akses eksklusif ke seluruh GPU, seperti pelatihan model dan komputasi kinerja tinggi (HPC).

Penjadwalan bersama

ack.node.gpu.schedule: cgpu

ack.node.gpu.schedule: core_mem

ack.node.gpu.schedule: share

ack.node.gpu.schedule: mps

Meningkatkan pemanfaatan GPU. Ideal untuk skenario dengan banyak tugas ringan konkuren, seperti multitenansi dan inferensi.

  • cgpu: Daya komputasi bersama dengan memori GPU terisolasi, berdasarkan teknologi berbagi cGPU Alibaba Cloud.

  • core_mem: Daya komputasi dan memori GPU terisolasi.

  • share: Sumber daya daya komputasi dan memori GPU dibagi tanpa isolasi.

  • mps: Daya komputasi bersama dengan memori GPU terisolasi, berdasarkan teknologi isolasi NVIDIA MPS yang dikombinasikan dengan teknologi cGPU Alibaba Cloud.

ack.node.gpu.placement: binpack

ack.node.gpu.placement: spread

Mengoptimalkan strategi alokasi sumber daya pada node multi-GPU saat berbagi cgpu, core_mem, share, atau mps diaktifkan.

  • binpack: (Default) Menjadwalkan beberapa pod secara padat. Mengisi satu GPU dengan pod sebelum menetapkan pod ke GPU berikutnya yang tersedia. Ini mengurangi fragmentasi sumber daya dan ideal untuk memaksimalkan pemanfaatan sumber daya atau penghematan energi.

  • spread: Mendistribusikan pod ke GPU yang berbeda. Ini mengurangi dampak kegagalan satu kartu dan cocok untuk tugas dengan ketersediaan tinggi.

Penjadwalan sadar topologi

ack.node.gpu.schedule: topology

Secara otomatis menetapkan kombinasi optimal GPU ke suatu pod berdasarkan topologi fisik GPU pada satu node. Ini cocok untuk tugas yang sensitif terhadap latensi komunikasi antar-GPU.

Penjadwalan model kartu

aliyun.accelerator/nvidia_name:<GPU_card_name>

Gunakan label-label ini dengan penjadwalan model kartu untuk mengatur memori GPU dan jumlah total kartu GPU untuk suatu pekerjaan GPU.
aliyun.accelerator/nvidia_mem:<memory_per_card>
aliyun.accelerator/nvidia_count:<total_number_of_GPU_cards>

Menjadwalkan tugas ke node dengan model GPU tertentu atau menghindari node dengan model tertentu.

Aktifkan fitur penjadwalan

Satu node hanya dapat menggunakan satu mode penjadwalan GPU dalam satu waktu: eksklusif, bersama, atau sadar topologi. Saat salah satu mode diaktifkan, sumber daya ekstensi untuk mode lainnya secara otomatis diatur ke 0.

Penjadwalan eksklusif

Jika suatu node tidak memiliki label penjadwalan GPU, penjadwalan eksklusif diaktifkan secara default. Dalam mode ini, node mengalokasikan sumber daya GPU ke pod dalam satuan kartu utuh.

Jika Anda telah mengaktifkan mode penjadwalan GPU lain, menghapus label tersebut tidak akan mengembalikan penjadwalan eksklusif. Untuk mengembalikannya, ubah nilai label secara manual menjadi ack.node.gpu.schedule: default.

Penjadwalan bersama

Penjadwalan bersama hanya tersedia untuk ACK managed cluster Pro. Untuk informasi selengkapnya, lihat Batasan.

  1. Instal komponen ack-ai-installer.

    1. Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Di halaman Cloud-native AI Suite, klik Deploy. Di halaman Deploy Cloud-native AI Suite, pilih Scheduling Policy Extension (Batch Task Scheduling, GPU Sharing, Topology-aware GPU Scheduling).

      Untuk informasi selengkapnya tentang cara mengatur kebijakan penjadwalan daya komputasi untuk layanan cGPU, lihat Instal dan gunakan layanan cGPU.
    3. Di halaman Cloud-native AI Suite, klik Deploy Cloud-native AI Suite.

      Di halaman Cloud-native AI Suite, verifikasi bahwa komponen ack-ai-installer muncul dalam daftar komponen yang diinstal.

  2. Aktifkan penjadwalan bersama.

    1. Di halaman Clusters, klik nama kluster target Anda. Di panel navigasi kiri, pilih Nodes > Node Pools.

    2. Di halaman Node Pools, klik Create Node Pool, konfigurasikan label node, lalu klik Confirm.

      Anda dapat mempertahankan nilai default untuk item konfigurasi lainnya. Untuk informasi selengkapnya tentang fungsi setiap label, lihat Ikhtisar label penjadwalan.
      • Konfigurasikan penjadwalan bersama dasar.

        Klik ikon Node Label untuk Node Labels, atur Key menjadi ack.node.gpu.schedule, dan pilih nilai seperti cgpu, core_mem, share, atau mps (memerlukan instalasi komponen MPS Control Daemon).

      • Konfigurasikan penjadwalan bersama multi-kartu.

        Pada node multi-GPU, Anda dapat menambahkan kebijakan penempatan ke konfigurasi penjadwalan bersama dasar untuk mengoptimalkan alokasi sumber daya.

        Klik ikon Node label untuk Node Labels, atur Key menjadi ack.node.gpu.placement, dan pilih binpack atau spread sebagai nilai label.

  3. Verifikasi bahwa penjadwalan bersama telah diaktifkan.

    cgpu/share/mps

    Ganti <NODE_NAME> dengan nama node di kelompok node target dan jalankan perintah berikut untuk memverifikasi bahwa penjadwalan bersama cgpu, share, atau mps telah diaktifkan pada node tersebut.

    kubectl get nodes <NODE_NAME> -o yaml | grep -q "aliyun.com/gpu-mem"

    Output yang diharapkan:

    aliyun.com/gpu-mem: "60"

    Jika bidang aliyun.com/gpu-mem tidak bernilai 0, penjadwalan bersama cgpu, share, atau mps telah diaktifkan.

    core_mem

    Ganti <NODE_NAME> dengan nama node di kelompok node target dan jalankan perintah berikut untuk memverifikasi bahwa penjadwalan bersama core_mem telah diaktifkan.

    kubectl get nodes <NODE_NAME> -o yaml | grep -E 'aliyun\.com/gpu-core\.percentage|aliyun\.com/gpu-mem'

    Output yang diharapkan:

    aliyun.com/gpu-core.percentage:"80"
    aliyun.com/gpu-mem:"6"

    Jika bidang aliyun.com/gpu-core.percentage dan aliyun.com/gpu-mem keduanya tidak nol, penjadwalan bersama core_mem telah diaktifkan.

    binpack

    Gunakan tool kueri sumber daya GPU bersama untuk memeriksa alokasi sumber daya GPU pada node:

    kubectl inspect cgpu

    Output yang diharapkan:

    NAME                   IPADDRESS      GPU0(Allocated/Total)  GPU1(Allocated/Total)  GPU2(Allocated/Total)  GPU3(Allocated/Total)  GPU Memory(GiB)
    cn-shanghai.192.0.2.109  192.0.2.109  15/15                   9/15                   0/15                   0/15                   24/60
    --------------------------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    24/60 (40%)

    Output menunjukkan bahwa GPU0 dialokasikan penuh (15/15) sedangkan GPU1 dialokasikan sebagian (9/15). Hal ini mengonfirmasi bahwa kebijakan binpack aktif. Kebijakan ini mengisi satu GPU sepenuhnya sebelum mengalokasikan sumber daya pada GPU berikutnya.

    spread

    Gunakan tool kueri sumber daya GPU penjadwalan bersama untuk memeriksa alokasi sumber daya GPU pada node:

    kubectl inspect cgpu

    Output yang diharapkan:

    NAME                   IPADDRESS      GPU0(Allocated/Total)  GPU1(Allocated/Total)  GPU2(Allocated/Total)  GPU3(Allocated/Total)  GPU Memory(GiB)
    cn-shanghai.192.0.2.109  192.0.2.109  4/15                   4/15                   0/15                   4/15                   12/60
    --------------------------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    12/60 (20%)

    Output menunjukkan alokasi sumber daya sebesar 4/15 pada GPU0, 4/15 pada GPU1, dan 4/15 pada GPU3. Hal ini konsisten dengan kebijakan penjadwalan yang memprioritaskan penyebaran pod ke GPU berbeda, yang mengonfirmasi bahwa kebijakan spread sedang berlaku.

Penjadwalan sadar topologi

Penjadwalan sadar topologi hanya tersedia untuk ACK managed cluster Pro. Untuk informasi selengkapnya, lihat Persyaratan versi komponen sistem.

  1. Instal komponen ack-ai-installer.

  2. Aktifkan penjadwalan sadar topologi.

    Ganti <NODE_NAME> dengan nama node target Anda dan jalankan perintah berikut untuk menambahkan label ke node dan mengaktifkan penjadwalan GPU sadar topologi.

    kubectl label node <NODE_NAME> ack.node.gpu.schedule=topology
    Setelah Anda mengaktifkan penjadwalan sadar topologi pada suatu node, node tersebut tidak lagi mendukung beban kerja GPU yang tidak sadar topologi. Untuk mengembalikan penjadwalan eksklusif, jalankan perintah kubectl label node <NODE_NAME> ack.node.gpu.schedule=default --overwrite.
  3. Verifikasi bahwa penjadwalan sadar topologi telah diaktifkan.

    Ganti <NODE_NAME> dengan nama node target Anda dan jalankan perintah berikut untuk memverifikasi bahwa penjadwalan sadar topologi topology telah diaktifkan.

    kubectl get nodes <NODE_NAME> -o yaml | grep aliyun.com/gpu

    Output yang diharapkan:

    aliyun.com/gpu: "2"

    Jika bidang aliyun.com/gpu tidak bernilai 0, penjadwalan sadar topologi topology telah diaktifkan.

Penjadwalan model kartu

Anda dapat menjadwalkan Pekerjaan ke node dengan model GPU tertentu atau menghindari node dengan model tertentu.

  1. Lihat model kartu GPU pada node.

    Jalankan perintah berikut untuk mengkueri model kartu GPU pada node di kluster Anda.

    Bidang NVIDIA_NAME menunjukkan model kartu GPU.
    kubectl get nodes -L aliyun.accelerator/nvidia_name

    Output yang diharapkan mirip dengan berikut:

    NAME                        STATUS   ROLES    AGE   VERSION            NVIDIA_NAME
    cn-shanghai.192.XX.XX.176   Ready    <none>   17d   v1.26.3-aliyun.1   Tesla-V100-SXM2-32GB
    cn-shanghai.192.XX.XX.177   Ready    <none>   17d   v1.26.3-aliyun.1   Tesla-V100-SXM2-32GB

    Perluas untuk melihat cara lain memeriksa model kartu GPU.

    Di halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Pods. Di baris pod, misalnya tensorflow-mnist-multigpu-***, klik Terminal di kolom Actions. Lalu, pilih kontainer yang ingin Anda login dari daftar drop-down dan jalankan perintah berikut.

    • Kueri model kartu: nvidia-smi --query-gpu=gpu_name --format=csv,noheader --id=0 | sed -e 's/ /-/g'

    • Kueri memori GPU tiap kartu: nvidia-smi --id=0 --query-gpu=memory.total --format=csv,noheader | sed -e 's/ //g'

    • Kueri jumlah total kartu GPU pada node: nvidia-smi -L | wc -l

    image

  2. Aktifkan penjadwalan model kartu.

    1. Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel navigasi kiri, pilih Workloads > Jobs.

    2. Di halaman Jobs, klik Create From YAML. Gunakan contoh berikut untuk membuat aplikasi dan mengaktifkan penjadwalan model kartu.

      image

      Tentukan model kartu tertentu

      Gunakan label penjadwalan model kartu GPU untuk memastikan aplikasi Anda berjalan pada node dengan model kartu tertentu.

      Dalam kode aliyun.accelerator/nvidia_name: "Tesla-V100-SXM2-32GB", ganti Tesla-V100-SXM2-32GB dengan model kartu node Anda.

      Perluas untuk melihat detail file YAML

      apiVersion: batch/v1
      kind: Job
      metadata:
        name: tensorflow-mnist
      spec:
        parallelism: 1
        template:
          metadata:
            labels:
              app: tensorflow-mnist
          spec:
            nodeSelector:
              aliyun.accelerator/nvidia_name: "Tesla-V100-SXM2-32GB" # Menjalankan aplikasi pada GPU Tesla V100-SXM2-32GB.
            containers:
            - name: tensorflow-mnist
              image: registry.cn-beijing.aliyuncs.com/acs/tensorflow-mnist-sample:v1.5
              command:
              - python
              - tensorflow-sample-code/tfjob/docker/mnist/main.py
              - --max_steps=1000
              - --data_dir=tensorflow-sample-code/data
              resources:
                limits:
                  nvidia.com/gpu: 1
              workingDir: /root
            restartPolicy: Never

      Setelah pekerjaan dibuat, pilih Workloads > Pods dari panel navigasi kiri. Daftar pod menunjukkan bahwa pod contoh dijadwalkan ke node yang sesuai. Hal ini mengonfirmasi bahwa penjadwalan berdasarkan label model kartu GPU berfungsi.

      Kecualikan model kartu tertentu

      Gunakan label penjadwalan model kartu GPU dengan afinitas dan anti-afinitas node untuk mencegah aplikasi Anda berjalan pada model kartu tertentu.

      Dalam values: - "Tesla-V100-SXM2-32GB", ganti Tesla-V100-SXM2-32GB dengan model kartu node Anda.

      Perluas untuk melihat detail file YAML

      apiVersion: batch/v1
      kind: Job
      metadata:
        name: tensorflow-mnist
      spec:
        parallelism: 1
        template:
          metadata:
            labels:
              app: tensorflow-mnist
          spec:
            affinity:
              nodeAffinity:
                requiredDuringSchedulingIgnoredDuringExecution:
                  nodeSelectorTerms:
                  - matchExpressions:
                    - key: aliyun.accelerator/nvidia_name  # Label penjadwalan model kartu
                      operator: NotIn
                      values:
                      - "Tesla-V100-SXM2-32GB"            # Mencegah pod dijadwalkan ke node dengan kartu Tesla-V100-SXM2-32GB.
            containers:
            - name: tensorflow-mnist
              image: registry.cn-beijing.aliyuncs.com/acs/tensorflow-mnist-sample:v1.5
              command:
              - python
              - tensorflow-sample-code/tfjob/docker/mnist/main.py
              - --max_steps=1000
              - --data_dir=tensorflow-sample-code/data
              resources:
                limits:
                  nvidia.com/gpu: 1
              workingDir: /root
            restartPolicy: Never

      Setelah pekerjaan dibuat, aplikasi tidak dijadwalkan pada node dengan kunci tag aliyun.accelerator/nvidia_name dan nilai tag Tesla-V100-SXM2-32GB. Namun, aplikasi dapat dijadwalkan pada node GPU lainnya.