Anda dapat memodifikasi parameter kustom kube-scheduler untuk menyesuaikan perilakunya, sehingga memungkinkan pengontrolan penjadwalan Pod sesuai kebutuhan—misalnya, dengan mengaktifkan kebijakan Binpack atau penjadwalan berbasis beban.
Prasyarat
Anda telah membuat ACK Managed Cluster Pro, ACK Edge Cluster Pro, ACK LINGJUN Cluster, atau ACK Serverless Cluster Pro versi 1.20 atau yang lebih baru. Untuk melakukan upgrade kluster, lihat Upgrade kluster secara manual.
Batasan
Untuk kluster managed ACK Pro dan kluster Edge ACK Pro, scheduler harus memenuhi persyaratan versi berikut agar mendukung parameter kustom.
Semua kluster Serverless ACK Pro dan LINGJUN Clusters yang telah menginstal kube-scheduler mendukung parameter kustom.
Versi kluster | Versi scheduler yang mendukung parameter kustom |
1.28 atau yang lebih baru | Semua versi didukung |
1.26 | v1.26.3-aliyun-6.8.7.5a563072 atau yang lebih baru |
1.24 | v1.24.6-ack-3.1 atau yang lebih baru |
1.22 | v1.22.15-ack-2.0 atau yang lebih baru |
1.20 | v1.20.11-9.0-bcaa6001-aliyun atau yang lebih baru |
Prosedur
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin Anda kelola lalu klik namanya. Di panel navigasi kiri, klik Add-ons.
Pada tab Core Components, temukan komponen kube-scheduler lalu klik Configure di pojok kanan bawah kartu tersebut. Pada kotak dialog yang muncul, konfigurasikan parameter-parameter tersebut.
Fitur yang didukung dan parameter kustom bervariasi tergantung pada versi scheduler. Untuk informasi selengkapnya mengenai fitur yang didukung oleh berbagai versi scheduler, lihat kube-scheduler. Tabel berikut menjelaskan parameter kustom beserta penggunaannya.
Item konfigurasi
Deskripsi
Tipe
Nilai (Rentang)
Nilai default
Enable Virtual Node Scheduling
Jika diaktifkan, penjadwalan Pod pada virtual node mengikuti semantik seperti node affinity dan anti-affinity.
bool
true
false
true
podMaxBackoffSeconds
Durasi backoff maksimum dalam detik untuk Pod yang gagal dijadwalkan.
int
[1,100000]
10
Enable Binpack Policy For Pod Scheduling
Mengaktifkan atau menonaktifkan kebijakan Binpack.
Untuk contoh konfigurasi, lihat bagian Parameter kustom Binpack di bawah.
bool
false
true
false
binpackPluginWeight
Bobot plugin Binpack relatif terhadap plugin scoring lainnya. Ini memerlukan opsi Enable Binpack Policy For Pod Scheduling dipilih.
int
[1,100000]
100
binpackResourceWeight
Bobot setiap tipe resource selama proses scoring plugin Binpack. Ini memerlukan opsi Enable Binpack Policy For Pod Scheduling dipilih.
resourceName: string
resourceWeight: int
resourceName divalidasi oleh skema. Hanya boleh berisi huruf, angka, titik (.), garis miring (/), dan tanda hubung (-).
resourceWeight adalah bilangan bulat dari 1 hingga 10000.
cpu:1
memory:1
scorePluginWeights
Bobot setiap plugin selama proses scoring.
CatatanBobot plugin NodeResourceFit bertentangan dengan bobot plugin Binpack. Jika Anda memilih Enable Binpack Policy For Pod Scheduling, jangan konfigurasikan bobot untuk plugin NodeResourceFit dalam pengaturan ini.
plugin: string
weight: int
plugin: Hanya plugin dari daftar publik yang didukung.
weight: Bilangan bulat dari 1 hingga 10000.
plugin: NodeAffinity
weight: 100
percentageOfNodesToScore
Persentase node yang dapat dijalankan untuk dinilai selama penjadwalan.
Nilai default adalah 0, yang berarti scheduler menilai persentase default node. Persentase default ini ditentukan oleh ukuran kluster dan berkisar antara 5% hingga 50%.
int
[0,100]
0
Enable Scoring For The Shared GPU Plugin
Saat menggunakan fitur shared GPU (penjadwalan shared GPU memerlukan AI suite), scheduler memprioritaskan GPU dengan permintaan memori GPU dan daya komputasi yang lebih tinggi saat menjadwalkan Pod GPU.
bool
false
true
true
Enable Load-aware Scoring For Pod Scheduling (loadAwareResourceWeight)
Mengaktifkan penjadwalan berbasis beban. Ini memerlukan komponen ack-koordinator diinstal.
bool
false
true
false
loadAwareThreshold
Parameter ini menentukan ambang batas untuk penyaringan node.
Nilainya terdiri dari bidang resourceName dan resourceWeight.
resourceName: Nilai yang valid adalah cpu dan memory.
threshold: Nilai yang valid berkisar dari 0 hingga 100.
Secara default, parameter ini dibiarkan kosong, yang menonaktifkan penyaringan node.
resourceName: cpu
threshold: 80
loadAwareResourceWeight
Nilainya terdiri dari bidang resourceName dan resourceWeight.
resourceName: Skema parameter resourceName diverifikasi. Nilainya hanya boleh berupa
cpuataumemory.resourceWeight: Nilai yang valid adalah bilangan bulat dari 1 hingga 100.
cpu=1
memory=1
loadAwareAggregatedUsageAggregationType
enum
avg
p50
p90
p95
p99
avg
preemptionAlgorithm
ACK Scheduler menggunakan simulasi resource untuk menentukan apakah akan mengusir Pod prioritas rendah guna memastikan peluncuran cepat tugas prioritas tinggi. Kebijakan yang didukung adalah:
Default: Mekanisme preemption default Kubernetes.
ElasticQuota: Preemption berdasarkan ElasticQuotaTree.
Auto: Menyesuaikan kebijakan preemption berdasarkan konfigurasi kluster.
None: Dinonaktifkan.
Untuk informasi selengkapnya, lihat Aktifkan preemption.
enum
Default
ElasticQuota
Auto
None
Auto
enableReservation
Mengaktifkan fitur pemesanan sumber daya.
boolean
true
false
false
featureGates
Feature gates yang diaktifkan untuk scheduler. Untuk feature gates yang didukung tiap versi, lihat dokumentasi resmi Kubernetes untuk kube-scheduler.
string
Tidak berlaku.
Sama dengan feature gates komunitas Kubernetes.
Contoh berikut menunjukkan cara menggunakan parameter kustom.
Parameter kustom Binpack
Perbandingan antara kebijakan Binpack dan Spread
Dimensi | Kebijakan Binpack | Kebijakan Penyebaran |
Kebijakan penjadwalan |
|
|
Karakteristik | Mengurangi fragmentasi resource pada node. |
|
Skenario | Skema yang memerlukan utilisasi node tinggi. | Skenario yang memerlukan ketersediaan tinggi node. |
Gunakan parameter kustom Binpack
Anda dapat mengaktifkan kebijakan Binpack untuk penjadwalan Pod dengan mengaktifkan Enable Binpack Policy For Pod Scheduling. Anda juga dapat mengatur bobot plugin scoring Binpack relatif terhadap plugin lainnya. Bobot yang lebih tinggi meningkatkan kemungkinan Pod dijadwalkan ke node yang sama. Selain itu, Anda dapat mengonfigurasi nama dan bobot resource yang digunakan plugin Binpack untuk scoring. Bobot resource yang lebih tinggi memberikan pengaruh lebih besar terhadap keputusan penjadwalan.
Pada halaman Component Management, buka tab Core Components. Temukan komponen kube-scheduler lalu klik Configure. Pada kotak dialog, konfigurasikan parameter kustom terkait Binpack.
Item konfigurasi | Contoh deskripsi |
Enable Binpack Policy For Pod Scheduling | Nyalakan sakelar tersebut. |
binpackPluginWeight | Konfigurasikan bobot untuk Binpack. Biasanya Anda tidak perlu mengubah nilai ini. Jika kebijakan Binpack tidak berlaku setelah diaktifkan, Anda dapat menaikkan bobotnya, misalnya menjadi 200. Untuk informasi selengkapnya, lihat binpack weight. |
Kebijakan Binpack untuk resource berbeda | Untuk contoh konfigurasi lengkap, lihat Enabling bin packing using MostAllocated strategy.
|
Jika Anda mengaktifkan Enable Binpack Policy For Pod Scheduling tetapi tidak mengonfigurasi resourceName atau resourceWeight untuk binpackResourceWeight, sistem akan menggunakan pengaturan Binpack default untuk CPU dan memory. Hal ini setara dengan konfigurasi berikut.

Referensi
Fitur penjadwalan berbasis beban memungkinkan Anda menjadwalkan Pod ke node berdasarkan penggunaan resource aktualnya, bukan berdasarkan resource yang diminta. Untuk informasi selengkapnya, lihat Gunakan penjadwalan berbasis beban.