Jika perencanaan kapasitas kluster Anda tidak dapat memenuhi persyaratan penjadwalan pod aplikasi, Anda dapat menggunakan fitur penskalaan node untuk secara otomatis menskalakan sumber daya node dan meningkatkan kapasitas penjadwalan. ACK menyediakan dua solusi penskalaan elastis: penskalaan otomatis node dan penskalaan instan node. Penskalaan instan node menawarkan penskalaan yang lebih cepat, efisiensi pengiriman yang lebih tinggi, serta hambatan masuk yang lebih rendah dibandingkan penskalaan otomatis node.
Sebelum memulai
Ikhtisar ini membantu Anda memahami solusi penskalaan node yang disediakan oleh ACK dan memilih solusi yang paling sesuai dengan kebutuhan bisnis Anda sebelum mengaktifkan fitur penskalaan node.
Sebelum membaca topik ini, kami menyarankan agar Anda memahami konsep penskalaan seperti penskalaan manual, penskalaan otomatis, skalabilitas horizontal, dan skalabilitas vertikal dengan membaca dokumentasi resmi Kubernetes.
Cara kerja
Di Kubernetes, penskalaan node bekerja berbeda dari model tradisional yang berbasis ambang batas penggunaan. Memahami perbedaan ini penting ketika Anda melakukan migrasi dari pusat data tradisional atau sistem orkestrasi lainnya ke kluster Kubernetes.
Model penskalaan elastis tradisional berbasis penggunaan. Misalnya, jika penggunaan CPU dan memori node dalam kluster melebihi ambang batas tertentu, sistem akan melakukan skala keluar dengan menambahkan node baru. Namun, model ini memiliki beberapa masalah berikut.
Untuk mengatasi masalah-masalah tersebut, ACK menggunakan model elastis dua lapisan: penskalaan node (lapisan sumber daya) dan penskalaan beban kerja (lapisan penjadwalan). Sebagai contoh, fitur penskalaan node memicu perubahan replika aplikasi—yang merupakan unit penjadwalan—berdasarkan penggunaan sumber daya. Bagian-bagian berikut menjelaskan detail teknisnya.
Solusi penskalaan elastis: penskalaan otomatis node dan penskalaan instan node
Penskalaan node adalah kemampuan penskalaan elastis pada lapisan sumber daya. Fitur ini secara otomatis menskalakan sumber daya node untuk meningkatkan kapasitas penjadwalan ketika kapasitas kluster tidak dapat memenuhi persyaratan penjadwalan pod aplikasi. ACK menyediakan dua solusi penskalaan node.
Pengantar
Hanya satu komponen penskalaan elastis yang dapat berjalan dalam sebuah kluster. Dua solusi penskalaan elastis ini tidak dapat digunakan bersamaan. Untuk mengaktifkan fitur penskalaan node, ikuti prosedur standar dalam Aktifkan penskalaan otomatis node atau Aktifkan penskalaan instan node.
Data kinerja penskalaan elastis yang disajikan dalam topik ini merupakan nilai teoretis berdasarkan gambar kustom yang dioptimalkan untuk penskalaan elastis. Kinerja aktual dapat bervariasi tergantung pada lingkungan bisnis Anda. Untuk informasi lebih lanjut tentang gambar kustom, lihat Optimalkan penskalaan elastis dengan gambar kustom.
Solusi | Komponen penskalaan elastis | Deskripsi |
Solusi 1: penskalaan otomatis node | komponen cluster-autoscaler | Secara berkala memelihara dan memeriksa status kluster menggunakan polling untuk menemukan kondisi yang memenuhi persyaratan skala keluar atau skala-masuk, lalu secara otomatis menskalakan node kluster. |
Solusi 2: penskalaan instan node | Komponen penskalaan instan node | Sebuah pengontrol penskalaan node berbasis event-driven. Fitur ini memastikan pengiriman sumber daya elastis yang lebih baik dalam skenario seperti kluster berskala besar (misalnya, kelompok node yang diaktifkan penskalaan otomatisnya memiliki lebih dari 100 node, atau terdapat lebih dari 20 kelompok node semacam itu) dan aktivitas skala keluar berturut-turut. Kecepatan penskalaan (waktu dari kegagalan penjadwalan pod pertama hingga penjadwalan berhasil) stabil di 45 detik, tingkat keberhasilan dapat mencapai 99%, dan fragmentasi sumber daya berkurang sekitar 30%. Fitur ini juga menawarkan ekstensibilitas yang lebih baik untuk kebijakan penskalaan kustom. |
Perbandingan solusi
Jika kelompok node dalam kluster Anda telah diaktifkan penskalaan elastis otomatis dan Scaling Mode-nya diatur ke Non-swift Mode, penskalaan instan node kompatibel dengan semantik dan perilaku komponen penskalaan otomatis node. Hal ini memungkinkan transisi mulus untuk semua jenis aplikasi. Bagian ini menjelaskan fitur-fitur yang dioptimalkan pada penskalaan instan node dibandingkan dengan penskalaan otomatis node.
Fitur yang ditingkatkan | Penskalaan otomatis node | Penskalaan instan node |
Kecepatan dan efisiensi penskalaan | Untuk satu aktivitas penskalaan, kecepatan penskalaan sekitar 60 detik dalam mode standar dan 50 detik dalam mode swift. | Memulai aksi penskalaan melalui mekanisme event-driven dan memanfaatkan kemampuan Alibaba Cloud ContainerOS untuk mempercepat penskalaan elastis. Kecepatan penskalaan sekitar 45±10 detik. |
Ketika waktu penskalaan mencapai 1 menit, kecepatan penskalaan mengalami bottleneck. Kecepatan penskalaan elastis juga menunjukkan jitter signifikan pada skala berbeda (beberapa kelompok node) dan dalam skenario berbeda (penskalaan berturut-turut). Misalnya, ketika jumlah kelompok node melebihi 100, kecepatan penskalaan menurun menjadi kisaran 100–150 detik. | Kinerja tidak mengalami penurunan signifikan seiring peningkatan jumlah kelompok node dan pod. Hal ini membuatnya lebih cocok untuk skenario dengan persyaratan tinggi terhadap kecepatan pengiriman elastis. | |
Menggunakan model polling dan dibatasi oleh ketergantungannya pada pemeliharaan status kluster. Sensitivitas penskalaan elastis minimum adalah 5 detik. | Berbasis event-driven dan menggunakan model responsif. Sensitivitas penskalaan elastis adalah 1–3 detik. | |
Kepastian pengiriman sumber daya | Inventaris sumber daya cloud sering berubah. Karena isu seperti kombinasi tipe instans yang kompleks dan inventaris tidak mencukupi, tingkat keberhasilan penskalaan elastis penskalaan otomatis node sekitar 97%. | Mendukung kebijakan pemilihan inventaris otomatis. Fitur ini dapat menyaring tipe instans yang kehabisan stok dari ribuan kombinasi tipe instans Alibaba Cloud berdasarkan kondisi dan urutan filter yang Anda konfigurasi. Fitur ini kemudian memilih tipe yang paling sesuai untuk skala keluar atau mengganti dengan tipe yang memenuhi syarat jika inventaris tidak mencukupi. Hal ini sangat mengurangi beban insinyur O&M dalam memilih tipe instans dan meningkatkan tingkat keberhasilan pengiriman menjadi 99%. |
Mendukung skala keluar dengan tipe instans yang sama seperti yang dikonfigurasi dalam kelompok node. Jika beberapa tipe dikonfigurasi, fitur ini memilih tipe instans terkecil yang memenuhi persyaratan untuk skala keluar. | Mendukung skala keluar dengan tipe instans berbeda. | |
Ketika pengiriman sumber daya gagal, fitur ini melakukan percobaan ulang secara berkala, yang merupakan pendekatan reaktif. | Ketika pengiriman sumber daya gagal, fitur ini mendukung fitur peringatan inventaris untuk memberikan pemberitahuan awal mengenai potensi risiko terkait kombinasi tipe instans. | |
Ambang penggunaan dan O&M | Dibandingkan dengan penskalaan otomatis node, penskalaan instan node memiliki hambatan masuk yang lebih rendah. Hal ini terutama tercermin dalam aspek-aspek berikut.
| |
Kebijakan penjadwalan | Selain semua fitur penjadwalan penskalaan otomatis node, penskalaan instan node juga mendukung fitur-fitur berikut:
| |
Penskalaan instan node mendukung pemilihan kebijakan Bin Packing dan PreBind (fitur kustom) yang optimal berdasarkan pod, yang dapat mengurangi tingkat fragmentasi penjadwalan hingga 30%. | ||
Batasan penskalaan instan node
Memahami batasan penskalaan instan node merupakan bagian penting dalam mengevaluasi solusi penskalaan instan node.
Mode swift tidak didukung.
Kelompok node tidak dapat memperluas lebih dari 180 node dalam satu batch.
Menonaktifkan skala-masuk di tingkat kluster saat ini tidak didukung.
CatatanUntuk menonaktifkan skala-masuk di tingkat node, lihat Bagaimana cara mencegah node tertentu agar tidak di-skala-masuk oleh penskalaan instan node?.
Penskalaan instan node tidak mendukung pemeriksaan inventaris instans spot. Untuk kelompok node yang Billing Method-nya diatur ke Spot Instance dan Use On-Demand Instances To Supplement Spot Instance Capacity diaktifkan, instans sesuai permintaan mungkin diperluas meskipun inventaris instans spot mencukupi.
Saran pemilihan solusi
Berdasarkan Perbandingan solusi dan Batasan penskalaan instan node di atas, Anda dapat memilih solusi yang sesuai dengan kebutuhan Anda. Jika bisnis Anda memiliki persyaratan yang relatif rendah terhadap kecepatan penskalaan, kepastian pengiriman sumber daya, dan biaya O&M, serta tidak dapat menerima batasan penskalaan instan node, maka penskalaan otomatis node mungkin sudah cukup. Sebaliknya, jika Anda memiliki persyaratan bisnis berikut, penskalaan instan node adalah solusi yang direkomendasikan.
Kluster berukuran besar. Misalnya, jika kelompok node yang diaktifkan penskalaan otomatisnya memiliki lebih dari 100 node, atau terdapat lebih dari 20 kelompok node semacam itu, efisiensi skala keluar penskalaan otomatis node menurun secara signifikan seiring pertumbuhan ukuran kluster. Sebaliknya, kinerja penskalaan instan node mengalami fluktuasi yang lebih kecil.
Anda memiliki persyaratan tinggi terhadap kecepatan pengiriman sumber daya (kecepatan penskalaan elastis). Dalam skenario penskalaan tunggal, kecepatan penskalaan elastis penskalaan otomatis node dalam mode standar sekitar 60 detik, sedangkan untuk penskalaan instan node sekitar 45 detik.
Batch beban kerja bisnis tidak dapat diprediksi, dan Anda sering perlu melakukan skala keluar berturut-turut untuk kelompok node elastis yang sama. Dalam mode penskalaan berturut-turut, kinerja penskalaan otomatis node menurun dan menunjukkan jitter signifikan. Sebaliknya, penskalaan instan node masih dapat mencapai kecepatan penskalaan sekitar 45 detik.
Catatan
Kuota dan batasan
Anda dapat menambahkan hingga 200 rute kustom ke tabel rute virtual private cloud (VPC). Untuk meningkatkan kuota ini, buka Quota Center dan ajukan permintaan. Untuk informasi lebih lanjut tentang kuota sumber daya lainnya dan cara meningkatkannya, lihat Kuota untuk dependensi cloud dasar.
Kami menyarankan agar Anda mengonfigurasi dengan tepat jumlah maksimum node dalam kelompok node yang diaktifkan penskalaan otomatisnya. Pastikan sumber daya dan kuota dependen, seperti blok CIDR VPC dan vSwitch, mencukupi untuk jumlah node yang ditentukan. Jika tidak, aktivitas skala keluar mungkin gagal. Untuk informasi lebih lanjut tentang cara mengonfigurasi jumlah maksimum node, lihat Konfigurasi jumlah instans. Untuk informasi lebih lanjut tentang perencanaan jaringan untuk ACK, lihat Perencanaan jaringan untuk kluster ACK yang dikelola.
Fitur penskalaan node tidak mendukung node langganan. Saat membuat kelompok node baru yang diaktifkan penskalaan otomatisnya, jangan memilih langganan sebagai metode penagihan. Untuk mengaktifkan penskalaan otomatis pada kelompok node yang sudah ada, pastikan kelompok node tersebut tidak berisi node langganan apa pun.
Fitur penskalaan node saat ini tidak mendukung Sidecar Containers. Deploy beban kerja yang menggunakan Sidecar Containers ke kelompok node yang tidak diaktifkan penskalaan otomatisnya.
Pemeliharaan sumber daya dependen
Jika Anda mengikat EIP ke node, jangan langsung menghapus node ECS yang diperluas oleh penskalaan node di Konsol ECS. Jika tidak, EIP tidak dapat dilepas secara otomatis.
Langkah selanjutnya
Berdasarkan pengenalan dan perbandingan solusi, Anda dapat memilih untuk mengaktifkan penskalaan otomatis node atau mengaktifkan penskalaan instan node.
Jika Anda mengalami masalah saat menggunakan penskalaan node, lihat FAQ penskalaan otomatis node untuk pemecahan masalah.