All Products
Search
Document Center

Container Compute Service:Gunakan penjadwal kustom

Last Updated:Sep 17, 2026

Kluster Container Service (ACS) dilengkapi penjadwal default. Saat Anda mengirimkan Pod ke kluster, penjadwal bernama default-scheduler secara default mengalokasikan sumber daya. Untuk mendukung jenis sumber daya khusus dan kebijakan penjadwalan yang kompleks, kluster ACS memungkinkan penggunaan penjadwal kustom. Topik ini menjelaskan cara menggunakan penjadwal kustom di kluster ACS beserta batasannya.

Prasyarat

  • Komponen acs-virtual-node telah terinstal dengan versi v2.12.0-acs.8 atau lebih baru.

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

    Versi kluster ACS

    Versi kube-scheduler yang diperlukan

    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.

    Opsi Enable custom labels and schedulers for GPU-HPN nodes pada komponen kube-scheduler diaktifkan secara default di versi-versi terbaru. Untuk informasi selengkapnya, lihat kube-scheduler.

    Catatan

    Saat menggunakan penjadwal kustom, Anda perlu mengonfigurasi spec.schedulerName untuk Pod tersebut. Untuk informasi selengkapnya, lihat Specify schedulers for pods.

Prosedur

Langkah 1: Deploy penjadwal kustom

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

Langkah 2: Ubah konfigurasi penjadwal ACS

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

  2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, klik Add-ons.

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

  4. Pada kotak dialog, pilih Enable custom labels and schedulers for GPU-HPN nodes, lalu klik OK.

    Untuk informasi selengkapnya, lihat kube-scheduler.
  5. Tabel berikut membandingkan efek pada Pod dan node saat opsi ini diaktifkan atau dinonaktifkan.

    Catatan

    Fitur ini hanya berlaku untuk Pod dan node GPU-HPN. Penjadwal kustom tidak didukung untuk jenis komputasi lainnya.

    Penjadwal default (dinonaktifkan)

    Penjadwal kustom (diaktifkan)

    Nama penjadwal Pod

    Kustomisasi tidak didukung. Setelah Pod dikirim, bidang spec.schedulerName akan ditimpa dengan default-scheduler.

    Anda dapat mengatur spec.schedulerName Pod ke nilai apa pun, dan nilai ini tidak akan diubah setelah pengiriman.

    Proses penjadwalan Pod

    Penjadwal ACS default mengalokasikan sumber daya untuk semua Pod.

    Penjadwal ACS default hanya menjadwalkan Pod yang spec.schedulerName-nya adalah default-scheduler. Penjadwal kustom bertanggung jawab mengalokasikan sumber daya untuk semua Pod lainnya.

    Batasan pada label, anotasi, dan taint untuk node GPU-HPN

    Batasan ACS berlaku untuk penambahan, modifikasi, dan penghapusan label, anotasi, serta taint node. Untuk informasi selengkapnya, lihat Manage node labels and taints.

    Batasan ACS tidak lagi berlaku untuk penambahan, modifikasi, dan penghapusan label, anotasi, serta taint node.

    Batasan pada penjadwalan afinitas Pod

    Batasan ACS berlaku untuk konfigurasi bidang afinitas. Untuk informasi selengkapnya, lihat Node Affinity Scheduling.

    Batasan ACS tidak lagi berlaku untuk konfigurasi bidang afinitas.

Langkah 3: Tetapkan penjadwal kustom ke Pod

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

    File ini menjelaskan aplikasi Deployment di mana 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
            # Tentukan kelas komputasi sebagai gpu-hpn. Penjadwal kustom tidak didukung untuk jenis komputasi lainnya.
            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
          # Tentukan nama penjadwal sebagai koord-scheduler. Nama harus sesuai dengan yang dikonfigurasi di Langkah 1.
          schedulerName: koord-scheduler
  2. Kirimkan Pod ke kluster ACS.

    kubectl apply -f dep-with-koordinator.yaml
  3. Periksa schedulerName dalam konfigurasi Pod.

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

    Output yang diharapkan:

    # Pod menentukan penjadwal kustom bernama koord-scheduler.
    NAME                               schedulerName
    dep-with-koordinator-xxxxx-xxxxx   koord-scheduler

FAQ

Error penjadwalan PVC: Insufficient attachable-volumes-xxx

Masalah ini tidak terjadi dengan penjadwal Kubernetes default. Hal ini karena beberapa penjadwal kustom, saat memproses sumber daya PersistentVolumeClaim (PVC), memerlukan objek Container Storage Interface (CSI) Node dari node tersebut agar tersedia atau telah melaporkan informasi kapasitas untuk driver CSI yang sesuai. Jika node tidak memenuhi kondisi ini, penjadwal mungkin salah menilai bahwa sumber daya tidak mencukupi.

Untuk mengatasinya, konfigurasikan penjadwal agar mengabaikan driver CSI tertentu. Misalnya, saat menggunakan penjadwal Volcano, Anda dapat menambahkan parameter peluncuran --ignored-provisioners=${csi-driver-name}:

# Anda dapat menentukan beberapa driver, dipisahkan dengan koma.
--ignored-provisioners=povplugin.csi.alibabacloud.com

Sesuaikan parameter tersebut berdasarkan driver CSI yang Anda gunakan.

Error kekurangan sumber daya: resource in cluster is overused atau queue resource quota insufficient

Masalah ini tidak terjadi dengan penjadwal Kubernetes default. Hal ini karena beberapa penjadwal kustom mengonversi nilai kapasitas sumber daya non-CPU atau non-memori, seperti ephemeral-storage, ke satuan milli. Karena node virtual melaporkan kapasitas yang sangat besar secara default, konversi ini dapat menyebabkan overflow integer 64-bit. Akibatnya, penjadwal salah menghitung kapasitas tersisa node atau kluster sebagai nilai negatif, sehingga memicu error kekurangan sumber daya. Kirimkan Tiket ke dukungan teknis untuk menyelesaikan masalah ini.