Jika kluster Anda tidak memiliki sumber daya yang cukup untuk menjadwalkan pod, Anda dapat menggunakan node autoscaling untuk menambah atau menghapus node secara otomatis. Node autoscaling ideal untuk skenario penskalaan yang kurang menuntut, seperti kluster dengan kurang dari 20 kelompok node yang diskalakan secara otomatis atau kurang dari 100 node pada masing-masing kelompok. Fitur ini juga cocok untuk workload dengan traffic yang stabil, permintaan sumber daya yang dapat diprediksi, dan di mana satu aksi penskalaan sudah cukup.
Sebelum memulai
Untuk menggunakan fitur node autoscaling secara efektif, kami menyarankan Anda terlebih dahulu membaca Node scaling dan memahami hal-hal berikut:
Cara kerja node autoscaling dan fitur-fiturnya
Kasus penggunaan yang sesuai untuk node autoscaling
Pertimbangan penting sebelum menggunakan node autoscaling
Saat skala-masuk (scale-in), instans langganan dihapus dari kluster tetapi tidak dihentikan. Untuk menghindari biaya tambahan, gunakan instans pay-as-you-go saat mengaktifkan fitur ini.
Tindakan Pencegahan
-
Sebelum memulai, pastikan Anda telah mengaktifkan layanan Auto Scaling.
-
Untuk informasi tentang kuota dan batasan, lihat Peringatan untuk node scaling.
-
Node autoscaling memiliki batasan yang diketahui terkait kebijakan penjadwalan tertentu, yang dapat menyebabkan perilaku penskalaan yang tidak terduga. Jika workload atau komponen Anda menggunakan kebijakan penjadwalan yang tidak didukung, kami merekomendasikan salah satu solusi berikut:
-
Solusi 1: Beralih ke node instant scaling.
-
Solusi 2: Sebarkan workload atau komponen yang terpengaruh ke kelompok node tempat penskalaan node tidak diaktifkan.
Misalnya, untuk menyebarkan komponen ack-node-local-dns-admission-controller, sebarkan ke kelompok node tempat node scaling tidak diaktifkan dan tambahkan persyaratan afinitas node berikut ke konfigurasi komponen tersebut.
nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: "k8s.aliyun.com" operator: "NotIn" values: ["true"]
-
-
Komponen cluster-autoscaler memerlukan sumber daya node selama pembaruan atau penerapan. Sumber daya yang tidak mencukupi dapat menyebabkan operasi tersebut gagal dan mengganggu penskalaan. Pastikan node Anda memiliki sumber daya yang memadai untuk mencegah kegagalan semacam itu.
Fitur ini melibatkan langkah-langkah berikut:
-
Langkah 1: Aktifkan node autoscaling untuk kluster: Anda harus terlebih dahulu mengaktifkan node autoscaling di tingkat kluster agar kebijakan penskalaan otomatis pada kelompok node berlaku.
-
Langkah 2: Konfigurasi kelompok node yang diskalakan secara otomatis: Fitur node autoscaling hanya berlaku untuk kelompok node tempat fitur tersebut diaktifkan. Oleh karena itu, Anda harus mengatur mode penskalaan kelompok node tertentu ke Auto.
Langkah 1: Aktifkan node autoscaling
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Node Pools, di samping Node Scaling, klik Enable.
-
Jika ini pertama kalinya Anda menggunakan node autoscaling, ikuti petunjuk di layar untuk mengaktifkan layanan Auto Scaling dan memberikan izin yang diperlukan. Jika Anda telah melakukannya sebelumnya, lewati langkah ini.
-
ACK managed cluster: Otorisasi peran AliyunCSManagedAutoScalerRole.
-
ACK dedicated cluster: Otorisasi peran KubernetesWorkerRole dan lampirkan AliyunCSManagedAutoScalerRolePolicy.
Di kotak dialog Node Scaling Configuration, setelah pemeriksaan awal berhasil, klik tautan peran RAM (misalnya
KubernetesWorkerRole-xxxx) untuk menyelesaikan otorisasi di konsol RAM.
-
-
Di halaman Node Scaling Configuration, atur Node Scaling Plan ke Auto Scaling, konfigurasi parameter, lalu klik OK.
Anda dapat mengganti solusi penskalaan setelah dipilih. Untuk mengganti, ubah pilihan ke node instant scaling, baca prompt di layar dengan cermat, dan ikuti petunjuk untuk menyelesaikan operasi.
Parameter
Deskripsi
Node Pool Scale-out Policy
-
Random Policy: Jika beberapa kelompok node memenuhi syarat untuk skala keluar, salah satu dipilih secara acak.
-
Default Policy: Jika beberapa kelompok node memenuhi syarat untuk skala keluar, dipilih kelompok yang menghasilkan pemborosan sumber daya paling sedikit.
-
Priority-based Policy: Jika beberapa kelompok node memenuhi syarat untuk skala keluar, dipilih kelompok dengan prioritas tertinggi.
Prioritas kelompok node ditentukan oleh parameter Node Pool Scale-out Priority.
Node Pool Scale-out Priority
Mengatur prioritas skala keluar untuk kelompok node. Parameter ini hanya berlaku ketika Node Pool Scale-out Policy diatur ke Priority-based Policy.
Rentang nilai: bilangan bulat dari 1 hingga 100. Nilai yang lebih besar menunjukkan prioritas yang lebih tinggi.
Anda harus mengklik Add di samping parameter, memilih kelompok node yang diskalakan secara otomatis, dan menetapkan prioritas untuknya.
Jika tidak tersedia kelompok node yang diskalakan secara otomatis, Anda dapat mengabaikan parameter ini untuk saat ini dan menetapkan prioritas setelah menyelesaikan Langkah 2: Konfigurasi kelompok node yang diskalakan secara otomatis.
Scaling Sensitivity
Interval sistem memeriksa apakah perlu melakukan penskalaan. Nilai default adalah 60 detik.
Selama penskalaan otomatis, komponen penskalaan secara otomatis memicu event skala keluar berdasarkan status penjadwalan.
Penting-
Node ECS: Komponen penskalaan hanya dapat melakukan skala-masuk pada node jika kondisi Scale-in Threshold, Scale-in Trigger Delay, dan Cooldown Period semuanya terpenuhi.
-
Node GPU: Komponen penskalaan hanya dapat melakukan skala-masuk pada node GPU jika kondisi GPU Scale-in Threshold, Scale-in Trigger Delay, dan Cooldown Period semuanya terpenuhi.
Allow Scale-in
Menentukan apakah skala-masuk node diizinkan. Jika dinonaktifkan, konfigurasi terkait skala-masuk tidak berlaku. Gunakan pengaturan ini dengan hati-hati.
Scale-in Threshold
Rasio permintaan sumber daya terhadap total kapasitas sumber daya sebuah node dalam kelompok node dengan node autoscaling diaktifkan.
Sebuah node memenuhi syarat untuk skala-masuk hanya jika pemanfaatan sumber daya CPU dan memorinya berada di bawah Scale-in Threshold.
GPU Scale-in Threshold
Ambang batas skala-masuk untuk instans GPU.
Instans GPU memenuhi syarat untuk skala-masuk hanya jika pemanfaatan CPU, memori, dan GPU-nya berada di bawah GPU Scale-in Threshold yang dikonfigurasi.
Scale-in Trigger Delay
Penundaan antara saat node memenuhi syarat untuk skala-masuk dan saat operasi skala-masuk dilakukan. Satuan: menit. Nilai default: 10 menit.
PentingKomponen penskalaan hanya dapat melakukan skala-masuk node setelah kondisi Scale-in Threshold terpenuhi dan durasi Scale-in Trigger Delay telah berlalu.
Cooldown Period
Periode setelah event skala keluar terakhir di mana komponen penskalaan tidak akan melakukan skala-masuk.
Selama periode cooldown, aksi skala-masuk dijeda, tetapi sistem terus mengevaluasi node untuk kelayakan. Setelah cooldown berakhir, node apa pun yang telah memenuhi kondisi skala-masuk (ambang batas dan waktu tunda) akan diskalakan masuk. Misalnya, dengan cooldown 10 menit dan tunda 5 menit, tidak ada node yang dihapus selama 10 menit setelah skala keluar. Jika sebuah node memenuhi syarat pada menit ke-2, node tersebut akan dihapus pada menit ke-10, karena telah memenuhi syarat selama 8 menit, yang melebihi tunda 5 menit.
-
Langkah 2: Konfigurasi kelompok node yang diskalakan secara otomatis
Anda dapat mengonfigurasi kelompok node yang sudah ada dengan mengubah Scaling Mode-nya menjadi Auto, atau membuat kelompok node baru dengan penskalaan otomatis diaktifkan.
Untuk petunjuk detail, lihat Create and manage a node pool. Parameter utama dijelaskan di bawah ini:
|
Parameter |
Deskripsi |
|
Scaling Mode |
|
|
Instances |
Min. Instances dan Max. Instances yang dapat diskalakan dalam kelompok node tidak termasuk instans yang sudah ada. Catatan
|
|
Instance-related parameters |
Saat skala keluar, node dialokasikan dari ECS instance families yang dikonfigurasi. Untuk meningkatkan tingkat keberhasilan skala keluar, pilih beberapa tipe instans di beberapa zona untuk menghindari ketidaktersediaan atau stok yang tidak mencukupi. Tipe instans spesifik yang digunakan untuk penskalaan ditentukan oleh Scaling Policy yang dikonfigurasi. Untuk memastikan stabilitas bisnis dan penjadwalan sumber daya yang akurat, jangan mencampur tipe instans GPU dan non-GPU dalam kelompok node yang sama. Konfigurasikan tipe instans untuk penskalaan dengan salah satu dari dua cara berikut:
Ikuti rekomendasi kekuatan elastisitas konsol untuk konfigurasi, atau view node pool elasticity strength setelah pembuatan. Untuk rekomendasi konfigurasi tipe instans ECS dan konfigurasi node yang tidak didukung oleh ACK, lihat ECS instance type configuration recommendations. Informasi sumber daya cloud dan penagihan: |
|
Operating System |
Untuk node yang diskalakan secara otomatis, didukung image Alibaba Cloud Linux, Windows, dan Windows Core. Saat Anda memilih image Windows atau Windows Core, sistem secara otomatis menambahkan taint |
|
Node Labels |
Label node yang ditambahkan ke konfigurasi kluster secara otomatis diterapkan ke node yang dibuat selama skala keluar. Penting
Node autoscaling hanya mengenali label node dan taint setelah dipetakan ke tag kelompok node, dan jumlah tag kelompok node terbatas. Oleh karena itu, untuk kelompok node yang diskalakan secara otomatis, pastikan jumlah total tag ECS, taint, dan label node yang dikonfigurasi tidak melebihi 12. |
|
Scaling Policy |
Konfigurasikan cara kelompok node memilih instans selama penskalaan.
|
|
Use Pay-as-you-go Instances When Spot Instances Are Insufficient |
Memerlukan pemilihan instans spot sebagai metode penagihan. Jika diaktifkan, jika instans spot yang cukup tidak dapat dibuat karena harga atau stok, ACK secara otomatis mencoba membuat instans pay-as-you-go sebagai pelengkap. Informasi sumber daya cloud dan penagihan: |
|
Enable Supplemental Spot Instance |
Memerlukan pemilihan instans spot sebagai metode penagihan. Jika diaktifkan, saat menerima notifikasi sistem bahwa instans spot akan ditarik kembali (5 menit sebelum penarikan), ACK mencoba menskalakan instans baru untuk kompensasi.
Pelepasan aktif instans spot dapat menyebabkan gangguan bisnis. Untuk meningkatkan tingkat keberhasilan kompensasi, kami merekomendasikan juga mengaktifkan Use Pay-as-you-go Instances When Spot Instances Are Insufficient. Informasi sumber daya cloud dan penagihan: |
|
Scaling Mode |
Memerlukan pengaktifan Auto Scaling untuk kelompok node dan pengaturan Scaling Mode ke Auto.
|
|
Taints |
Mencegah pod dijadwalkan ke node. |
Langkah 3: (Opsional) Verifikasi hasil
Setelah menyelesaikan langkah-langkah ini, fitur node autoscaling siap digunakan. Kelompok node akan menunjukkan bahwa penskalaan otomatis aktif, dan sistem akan secara otomatis menginstal komponen cluster-autoscaler.
Penskalaan otomatis diaktifkan untuk kelompok node
Di halaman Node Pools, daftar kelompok node menampilkan kelompok node tempat penskalaan otomatis diaktifkan.
Komponen cluster-autoscaler diinstal
Di panel navigasi kiri halaman manajemen kluster, pilih .
-
Pilih namespace kube-system. Komponen cluster-autoscaler muncul dalam daftar.
FAQ
Kategori | Subkategori | Tautan |
Perilaku penskalaan node auto scaling | ||
| ||
Does the cluster-autoscaler support CustomResourceDefinitions (CRDs)? | ||
Custom scaling behavior | ||
cluster-autoscaler component | ||