Kf memanfaatkan Kubernetes Horizontal Pod Autoscaler (HPA) untuk menskalakan jumlah Pod dalam Aplikasi secara otomatis. Saat penskalaan otomatis diaktifkan untuk Aplikasi, objek HPA akan dibuat dan diikat ke objek Aplikasi. Kemudian, fitur ini akan menghitung skala target secara dinamis dan menetapkannya untuk Aplikasi.
Cara kerja penskalaan Kf
Jumlah Pod yang di-deploy untuk Aplikasi Kf
dikontrol oleh kolom replica
objek Deployment yang mendasarinya. Jumlah target replika Deployment ditetapkan melalui kolom replicas
Aplikasi.
Penskalaan dapat dilakukan secara manual dengan perintah
kf scale
. Perintah ini dinonaktifkan saat penskalaan otomatis diaktifkan untuk menghindari target yang bertentangan.
Cara kerja Autoscaler Pod Horizontal Kubernetes
Autoscaler (HPA) Horizontal Pod diimplementasikan sebagai resource Kubernetes API (objek HPA) dan loop kontrol (pengontrol HPA) yang secara berkala menghitung jumlah replika yang diinginkan berdasarkan penggunaan resource saat ini. Pengontrol HPA kemudian meneruskan nomor tersebut ke objek target yang mengimplementasikan subresource Scale. Penskalaan sebenarnya didelegasikan ke objek pokok dan pengontrolnya. Anda dapat mengetahui informasi selengkapnya di dokumentasi Kubernetes.
Cara Autoscaler menentukan waktu untuk melakukan penskalaan
Secara berkala, pengontrol HPA membuat kueri penggunaan resource terhadap metrik yang ditentukan dalam setiap definisi HorizontalPodAutoscaler. Pengontrol akan memperoleh metrik dari API metrik resource untuk setiap Pod. Kemudian, pengontrol akan menghitung nilai pemakaian sebagai persentase dari permintaan resource yang setara. Jumlah replika yang diinginkan kemudian dihitung berdasarkan rasio persentase saat ini dan persentase yang diinginkan. Anda dapat membaca lebih lanjut tentang algoritma penskalaan otomatis di dokumentasi Kubernetes.
Metrik
Kf menggunakan HPA v1 yang hanya mendukung CPU sebagai metrik target.
Cara kerja Autoscaler Horizontal Kubernetes dengan Kf
Saat penskalaan otomatis diaktifkan untuk Aplikasi Kf, pengontrol Kf akan membuat objek HPA berdasarkan batas penskalaan dan aturan yang ditentukan pada Aplikasi. Kemudian, pengontrol HPA mengambil spesifikasi dari objek HPA dan menskalakan Aplikasi sebagaimana mestinya.
Objek HPA akan dihapus jika Penskalaan Otomatis dinonaktifkan atau jika Aplikasi yang sesuai dihapus.