Sesuaikan perilaku kube-scheduler—seperti binpack, penjadwalan berbasis beban (load-aware scheduling), preemption, dan lainnya—untuk mengontrol penempatan Pod di kluster Anda.
Prasyarat
Kluster ACK Pro, ACK Edge Pro, ACK Lingjun, atau ACK Serverless Pro yang menjalankan Kubernetes versi 1.20 atau lebih baru telah dibuat. Untuk memperbarui versi Kubernetes, lakukan upgrade kluster secara manual.
Batasan
Versi kube-scheduler yang mendukung parameter kustom di kluster ACK Pro dan kluster ACK Edge Pro bergantung pada versi Kubernetes:
Kluster ACK Serverless Pro dan kluster ACK Lingjun yang memiliki kube-scheduler terinstal mendukung parameter kustom.
Versi Kubernetes | Versi kube-scheduler |
≥ 1.28 | Semua versi |
1.26 | ≥ v1.26.3-aliyun-6.8.7.5a563072 |
1.24 | ≥ 1.24.6-ack-3.1 |
1.22 | ≥ 1.22.15-ack-2.0 |
1.20 | ≥ v1.20.11-9.0-bcaa6001-aliyun |
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 Kube Scheduler lalu klik Configuration. Konfigurasikan parameter pada kotak dialog Kube Scheduler Parameters.
Parameter yang tersedia bervariasi tergantung versi kube-scheduler. Untuk fitur spesifik versi, lihat Container Service for Kubernetes:kube-scheduler.
Parameter
Deskripsi
Type
Nilai valid
Nilai default
Enable Virtual Node-based Pod Scheduling
Menentukan apakah akan menjadwalkan Pod pada node virtual berdasarkan afinitas node dan batasan penyebaran Pod.
bool
true
false
true
podMaxBackoffSeconds
Interval backoff maksimum (dalam detik) antara upaya penjadwalan untuk Pod yang gagal. Interval antara dua upaya penjadwalan harus melebihi nilai ini.
int
[1,100000]
10
Preferably Use Bin Packing During Pod Scheduling
Menentukan apakah akan mengaktifkan algoritma binpack.
Untuk contoh konfigurasi, lihat Parameter binpack kustom.
bool
false
true
false
binpackPluginWeight
Bobot skor node plug-in binpack. Memerlukan pengaktifan Preferably Use Bin Packing During Pod Scheduling.
int
[1,100000]
100
binpackResourceWeight
Bobot setiap resource dalam perhitungan skor node plug-in binpack. Memerlukan pengaktifan Preferably Use Bin Packing During Pod Scheduling.
resourceName: string
resourceWeight: int
resourceName: hanya huruf, angka, titik (.), garis miring (/), dan tanda hubung (-).
resourceWeight: bilangan bulat dari 1 hingga 10000.
cpu:1
memory:1
scorePluginWeights
Bobot setiap plug-in penilaian untuk perhitungan skor node.
CatatanBobot plug-in NodeResourceFit bertentangan dengan bobot plug-in binpack. Jika Anda memilih Preferably Use Bin Packing During Pod Scheduling (Pods Are Evenly Distributed among Nodes When Unselected), jangan atur bobot NodeResourceFit untuk parameter ini.
plugin: string
weight: int
Hanya plug-in yang tersedia dalam daftar drop-down plugin yang dapat digunakan.
weight: bilangan bulat dari 1 hingga 10000.
plugin: NodeAffinity
weight: 100
percentageOfNodesToScore
Persentase node yang sesuai untuk penjadwalan Pod.
Nilai default: 0. Saat diatur ke 0, 5%–50% node dinilai berdasarkan ukuran kluster.
int
[0,100]
0
Node scoring for GPU sharing
Saat menggunakan penjadwalan GPU bersama (memerlukan AI suite), menjadwalkan Pod berakselerasi GPU ke GPU dengan permintaan memori dan komputasi yang lebih tinggi.
bool
false
true
true
Load-aware scoring during pod scheduling (loadAwareResourceWeight)
Menentukan apakah akan mengaktifkan penjadwalan berbasis beban. Memerlukan komponen ack-koordinator.
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 antara 0 hingga 100.
Secara default, parameter ini dibiarkan kosong, yang berarti penyaringan node dinonaktifkan.
resourceName: cpu
threshold: 80
loadAwareResourceWeight
Parameter ini menentukan bobot resource yang digunakan untuk menghitung skor node dalam pengurutan node. Parameter ini tersedia setelah Anda memilih Specifies whether to enable load-aware node scoring during pod scheduling.
Nilainya terdiri dari bidang resourceName dan resourceWeight.
resourceName: Skema parameter resourceName diverifikasi. Nilainya hanya boleh
cpuataumemory.resourceWeight: Nilai yang valid adalah bilangan bulat dari 1 hingga 100.
cpu=1
memory=1
loadAwareAggregatedUsageAggregationType
Parameter ini menentukan jenis agregasi data untuk statistik. Nilai yang valid:
avg: menghitung nilai rata-rata.
p50: menghitung 50% dari statistik.
p90, p95, dan p99: menghitung 90%, 95%, dan 99% dari statistik.
enum
avg
p50
p90
p95
p99
avg
preemptionAlgorithm
ACK Scheduler menentukan apakah akan mengusir Pod prioritas rendah melalui simulasi resource, dengan memprioritaskan startup cepat beban kerja prioritas tinggi. Strategi yang didukung:
Default: preemption standar komunitas Kubernetes
ElasticQuota: preemption resource berdasarkan ElasticQuotaTree
Auto: kebijakan preemption adaptif berdasarkan spesifikasi kluster
None: menonaktifkan preemption
Lihat Aktifkan preemption.
enum
Default
ElasticQuota
Auto
None
Auto
enableReservation
Menentukan apakah akan mengaktifkan pemesanan sumber daya.
boolean
true
false
false
featureGates
Feature gate yang diaktifkan oleh penjadwal. Untuk dukungan spesifik versi, lihat dokumentasi kube-scheduler.
string
N/A
ACK menggunakan feature gate yang sama seperti Kubernetes open source.
Contoh berikut menunjukkan konfigurasi binpack sampel.
Parameter binpack kustom
Algoritma binpack vs. spread
Dimensi | binpack | spread |
Kebijakan penjadwalan |
|
|
Fitur | Mengurangi fragmentasi resource pada node. |
|
Skenario | Paling cocok untuk meningkatkan utilisasi resource node. | Paling cocok untuk beban kerja berdaya tahan tinggi (high-availability). |
Konfigurasikan parameter binpack kustom
Pilih Preferably Use Bin Packing During Pod Scheduling dan atur bobot plug-in binpack. Bobot yang lebih besar meningkatkan kemungkinan penempatan beberapa Pod pada node yang sama. Konfigurasikan nama resource dan bobotnya untuk perhitungan skor node. Bobot resource yang lebih besar memberikan pengaruh lebih besar terhadap penjadwalan Pod.
Pada tab Core Components di halaman Add-ons, temukan Kube Scheduler lalu klik Configuration untuk mengonfigurasi parameter binpack.
Parameter | Deskripsi |
Preferably Use Bin Packing During Pod Scheduling | Mengaktifkan algoritma binpack. |
binpackPluginWeight | Bobot skor node plug-in binpack. Gunakan nilai default dalam sebagian besar kasus. Jika penjadwalan Pod tidak sesuai harapan, tingkatkan bobotnya (misalnya, 200). Lihat binpack weight. |
Nama resource dan bobotnya untuk perhitungan skor node binpack. | Lihat Pengaktifan bin packing menggunakan strategi MostAllocated.
|
Jika Anda memilih Preferably Use Bin Packing During Pod Scheduling tanpa mengonfigurasi resourceName dan resourceWeight, pengaturan CPU dan memori default seperti di bawah ini akan digunakan untuk perhitungan skor node. Nilai defaultnya adalah resourceName cpu dengan resourceWeight 1, dan resourceName memory dengan resourceWeight 1.

Referensi
Untuk menjadwalkan Pod berdasarkan penggunaan resource aktual alih-alih jumlah yang diminta, aktifkan penjadwalan berbasis beban.