Permintaan sumber daya sulit diprediksi dalam skenario cloud-native. Horizontal Pod Autoscaler (HPA) yang disediakan oleh Kubernetes menyesuaikan sumber daya dengan penundaan dan konfigurasinya kompleks. Untuk mengatasi masalah ini, Container Service for Kubernetes (ACK) meluncurkan Advanced Horizontal Pod Autoscaler (AHPA). AHPA dapat secara otomatis mengidentifikasi fluktuasi beban kerja dan memprediksi permintaan sumber daya berdasarkan data metrik historis untuk membantu Anda menerapkan skalabilitas prediktif.
Informasi latar belakang
Metode tradisional berikut digunakan untuk mengelola pod aplikasi: menentukan jumlah pod secara manual, menggunakan HPA, atau menggunakan CronHPA. Tabel berikut menjelaskan kekurangan dari metode-metode tersebut.
Metode | Kekurangan |
Tentukan jumlah pod secara manual | Sumber daya terbuang dan Anda dikenakan biaya untuk sumber daya yang tidak digunakan selama jam-jam sepi. |
Gunakan HPA | Aktivitas penskalaan dilakukan setelah adanya penundaan penskalaan. Aktivitas scale-out hanya dipicu jika penggunaan sumber daya melebihi ambang batas dan aktivitas scale-in hanya dipicu jika penggunaan sumber daya turun di bawah ambang batas. |
Gunakan CronHPA |
|
Kluster ACK menyediakan fitur AHPA yang mendukung skalabilitas prediktif. Anda dapat menggunakan AHPA untuk meningkatkan pemanfaatan sumber daya dan efisiensi manajemen sumber daya. AHPA dapat menganalisis data historis dan memprediksi jumlah pod yang diperlukan per menit dalam 24 jam ke depan. Jika menggunakan CronHPA, Anda harus membuat 1.440 jadwal secara manual (24 jam × 60 menit). Gambar berikut menunjukkan perbedaan antara penskalaan horizontal pod tradisional dan penskalaan horizontal pod prediktif.
Penskalaan Horizontal Pod Tradisional: Aktivitas scale-out dipicu setelah jumlah beban kerja meningkat. Sistem tidak dapat menyediakan pod pada kesempatan pertama untuk menangani beban kerja yang berfluktuasi karena penundaan penskalaan.
Penskalaan Horizontal Pod Prediktif: AHPA mengidentifikasi fluktuasi beban kerja berdasarkan nilai historis metrik tertentu dan waktu yang dihabiskan pod sebelum status pod berubah menjadi Ready. Dengan cara ini, AHPA dapat menyediakan pod yang siap untuk dijadwalkan sebelum lonjakan lalu lintas terjadi, memastikan bahwa sumber daya dialokasikan tepat waktu.
Arsitektur bisnis
Berbagai Metrik: AHPA mendukung metrik seperti CPU, GPU, memori, permintaan per detik (QPS), waktu respons (RT), dan metrik eksternal.
Stabilitas: AHPA menggunakan prediksi proaktif, prediksi pasif, dan degradasi layanan untuk menjamin sumber daya yang cukup bagi aplikasi.
Prediksi Proaktif: AHPA memprediksi tren fluktuasi beban kerja berdasarkan data metrik historis. Prediksi proaktif cocok untuk aplikasi dengan beban kerja yang berfluktuasi secara periodik.
Prediksi Pasif: AHPA memprediksi fluktuasi beban kerja secara real-time dan menerapkan sumber daya sesuai kebutuhan.
Degradasi Layanan: AHPA memungkinkan Anda menentukan jumlah maksimum dan minimum pod dalam satu atau lebih periode waktu.
Berbagai Metode Penskalaan: AHPA dapat menggunakan Knative, HPA, dan Deployment untuk melakukan penskalaan.
Knative: AHPA membantu menyelesaikan masalah cold start dalam penskalaan sumber daya berdasarkan konkurensi, QPS, atau RT dalam skenario serverless.
HPA: AHPA menyederhanakan konfigurasi kebijakan penskalaan HPA dan membantu pemula menangani masalah penundaan penskalaan.
Deployment: AHPA dapat langsung menggunakan Deployment untuk melakukan penskalaan otomatis.
Keunggulan
Kinerja Tinggi: AHPA dapat memprediksi fluktuasi beban kerja dalam milidetik dan menyesuaikan sumber daya dalam hitungan detik.
Akurasi Tinggi: AHPA dapat mengidentifikasi fluktuasi beban kerja dengan akurasi lebih dari 95% berdasarkan prediksi proaktif dan prediksi pasif.
Stabilitas Tinggi: AHPA memungkinkan Anda menentukan jumlah maksimum dan minimum pod yang diperlukan dalam periode waktu yang akurat hingga menit.
Skenario
Aplikasi dengan beban kerja yang berfluktuasi secara periodik, seperti live streaming, pendidikan online, dan aplikasi game.
Skenario di mana jumlah pod tetap dan penskalaan otomatis digunakan untuk menangani fluktuasi beban kerja, misalnya lonjakan lalu lintas tak terduga dalam skenario bisnis reguler.
Rekomendasi sistem tentang jumlah pod yang akan disediakan diperlukan. AHPA menyediakan API Kubernetes standar untuk memungkinkan Anda memperoleh hasil prediksi. Anda dapat mengintegrasikan API ke dalam sistem bisnis Anda.
Referensi
Untuk informasi lebih lanjut tentang cara menerapkan dan menggunakan AHPA, lihat Deploy AHPA.
Untuk informasi lebih lanjut tentang cara menggunakan AHPA untuk melakukan penskalaan prediktif berdasarkan metrik GPU, lihat Gunakan AHPA untuk Melakukan Penskalaan Prediktif Berdasarkan Metrik GPU.
Untuk informasi lebih lanjut tentang cara menggunakan AHPA di Knative, lihat Gunakan AHPA untuk Mengaktifkan Penskalaan Prediktif di Knative.