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.
CatatanSaat menggunakan penjadwal kustom untuk Pod GPU-HPN, Anda harus mengonfigurasi bidang
spec.schedulerNamepada 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
Masuk ke Konsol ACS. Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster target dan klik ID-nya. Di panel navigasi sebelah kiri, pilih Operations > Add-ons.
Pada halaman Add-ons, pada kartu Kube Scheduler, klik Configuration.
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.
CatatanIni 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.schedulerNamediubah menjadi default-scheduler.Kustomisasi didukung. Anda dapat mengatur bidang
spec.schedulerNamePod 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.schedulerNamediatur 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
Buat file bernama
dep-with-koordinator.yamldengan 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-schedulerKirimkan Pod ke kluster ACS.
kubectl apply -f dep-with-koordinator.yamlPeriksa
schedulerNameyang dikonfigurasi pada Pod.kubectl get pod -lapp=dep-with-koordinator -o custom-columns=NAME:.metadata.name,schedulerName:.spec.schedulerNameOutput 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.comSesuaikan parameter konfigurasi berdasarkan nama driver CSI yang digunakan.