全部产品
Search
文档中心

Container Compute Service:Menggunakan penjadwal kustom

更新时间:Nov 15, 2025

Kluster ACS dilengkapi penjadwal default. Saat Anda mengirimkan Pod ke kluster, penjadwal bernama default-scheduler secara otomatis mengalokasikan sumber daya. Untuk menjadwalkan jenis sumber daya khusus dan menerapkan kebijakan penjadwalan yang kompleks, kluster ACS memungkinkan penggunaan penjadwal kustom untuk Pod. Topik ini menjelaskan cara menggunakan penjadwal kustom di kluster ACS beserta batasan-batasannya.

Prasyarat

  • Jenis komputasi Pod adalah GPU Jaringan Berkinerja Tinggi (gpu-hpn).

  • Add-on acs-virtual-node telah diinstal, dengan versi v2.12.0-acs.8 atau lebih baru.

  • Komponen kube-scheduler telah diinstal, dan versinya memenuhi persyaratan berikut.

    Versi kluster ACS

    Versi kube-scheduler yang mendukung penjadwal kustom

    1.32 dan lebih baru

    Semua versi didukung.

    1.31

    v1.31.0-aliyun-1.1.2 dan lebih baru.

    1.30

    v1.30.3-aliyun-1.1.2 dan lebih baru.

    1.28

    v1.28.9-aliyun-1.1.2 dan lebih baru.

    Catatan

    Saat menggunakan penjadwal kustom untuk Pod GPU-HPN, Anda harus mengonfigurasi bidang spec.schedulerName pada Pod tersebut. Untuk informasi selengkapnya, lihat Tentukan penjadwal untuk Pod.

Perhatian

Di kluster ACS, Pod dengan jenis komputasi berbeda menggunakan jenis node yang berbeda. ACS tidak mendukung penjadwal kustom untuk jenis Pod yang menggunakan node virtual reguler. Rinciannya sebagai berikut.

Tipe Komputasi

Jenis node yang sesuai

Gunakan penjadwal kustom

Tujuan umum

Node virtual reguler

Tidak didukung

Dioptimalkan komputasi

GPU

GPU-HPN

Node reservasi GPU-HPN

Didukung

Prosedur

Langkah 1: Menyebarkan penjadwal kustom di kluster ACS

Sebarkan penjadwal kustom di kluster. Untuk informasi selengkapnya, lihat dokumentasi Kubernetes.

Langkah 2: Memodifikasi konfigurasi penjadwal ACS

  1. Masuk ke Konsol ACS. Di panel navigasi sebelah kiri, klik Clusters.

  2. Pada halaman Clusters, temukan kluster target dan klik ID-nya. Di panel navigasi sebelah kiri, pilih Operations > Add-ons.

  3. Pada halaman Add-ons, pada kartu Kube Scheduler, klik Configuration.

  4. Pada kotak dialog yang muncul, pilih Enable Custom Tags And Scheduler For GPU-HPN Nodes, lalu klik OK.

    Tabel berikut menjelaskan dampak terhadap Pod dan node saat opsi ini diaktifkan atau dinonaktifkan.

    Catatan

    Ini hanya berlaku untuk Pod dan node GPU-HPN. Jenis komputasi Pod lainnya tidak mendukung penjadwal kustom.

    Menggunakan penjadwal default (opsi dinonaktifkan)

    Menggunakan penjadwal kustom (opsi diaktifkan)

    Nama penjadwal Pod

    Kustomisasi tidak didukung. Setelah Anda mengirimkan Pod, bidang spec.schedulerName diubah menjadi default-scheduler.

    Kustomisasi didukung. Anda dapat mengatur bidang spec.schedulerName Pod ke nilai apa pun. Bidang tersebut tidak dimodifikasi setelah pengiriman.

    Proses penjadwalan Pod

    Penjadwal default ACS mengalokasikan sumber daya untuk semua Pod.

    Penjadwal default ACS hanya menjadwalkan Pod yang memiliki spec.schedulerName diatur ke default-scheduler. Penjadwal kustom mengalokasikan sumber daya untuk semua Pod lainnya.

    Batasan label dan taint node GPU-HPN

    Menambahkan, memodifikasi, dan menghapus label node, anotasi, serta taint tunduk pada batasan konfigurasi ACS. Untuk informasi selengkapnya, lihat Mengelola label dan taint node.

    Menambahkan, memodifikasi, dan menghapus label node, anotasi, serta taint tidak lagi tunduk pada batasan konfigurasi ACS.

    Batasan penjadwalan afinitas Pod

    Konfigurasi bidang afinitas tunduk pada batasan konfigurasi ACS. Untuk informasi selengkapnya, lihat Penjadwalan afinitas node.

    Konfigurasi bidang afinitas tidak lagi tunduk pada batasan konfigurasi ACS.

Langkah 3: Mengonfigurasi penjadwal kustom untuk Pod

  1. Buat file bernama dep-with-koordinator.yaml dengan konten berikut.

    File ini mendefinisikan sebuah Penyebaran. Templat Pod menentukan penjadwal kustom bernama koord-scheduler.
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: dep-with-koordinator
      labels:
        app: dep-with-koordinator
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: dep-with-koordinator
      template:
        metadata:
          labels:
            app: dep-with-koordinator
            # Set the compute class to gpu-hpn. Other compute types do not support custom schedulers.
            alibabacloud.com/compute-class: gpu-hpn
        spec:
          containers:
          - name: demo
            image: registry.cn-hangzhou-finance.aliyuncs.com/acs/stress:v1.0.4
            command:
            - "sleep"
            - "infinity"
          restartPolicy: Always
          # Set the scheduler name to koord-scheduler. The name must match the one configured in Step 1.
          schedulerName: koord-scheduler
  2. Kirimkan Pod ke kluster ACS.

    kubectl apply -f dep-with-koordinator.yaml
  3. Periksa schedulerName yang dikonfigurasi pada Pod.

    kubectl get pod -lapp=dep-with-koordinator -o custom-columns=NAME:.metadata.name,schedulerName:.spec.schedulerName

    Output yang diharapkan:

    # The pod specifies the custom scheduler named koord-scheduler.
    NAME                               schedulerName
    dep-with-koordinator-xxxxx-xxxxx   koord-scheduler

FAQ

Mengapa saya menerima kesalahan Insufficient attachable-volumes-xxx selama penjadwalan ketika Pod menggunakan sumber daya PVC dengan penjadwal kustom?

Masalah ini tidak terjadi dengan penjadwal Kubernetes default. Hal ini karena beberapa penjadwal kustom memiliki persyaratan khusus dalam memproses sumber daya PersistentVolumeClaim (PVC). Mereka memerlukan objek Container Storage Interface (CSI) Node dari node tersebut tersedia dan telah melaporkan informasi kapasitas untuk driver CSI yang sesuai. Jika node tidak memenuhi kondisi ini, penjadwal akan melaporkan kesalahan sumber daya tidak mencukupi.

Untuk mengatasi masalah ini, Anda dapat mengonfigurasi penjadwal agar mengabaikan driver CSI tertentu. Misalnya, dengan penjadwal Volcano, tambahkan parameter `--ignored-provisioners=${csi-driver-name}` saat startup:

# You can specify multiple drivers, separated by commas.
--ignored-provisioners=povplugin.csi.alibabacloud.com

Sesuaikan parameter konfigurasi berdasarkan nama driver CSI yang digunakan.