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 terikat ke objek Aplikasi. Kemudian, kode ini secara dinamis menghitung skala target 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 replika Deployment target 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 Horizontal Pod Autoscaler Kubernetes
Horizontal Pod Autoscaler (HPA) 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 angka tersebut ke objek target yang menerapkan sub-resource Skala. Penskalaan sebenarnya didelegasikan ke objek pokok dan pengontrolnya. Anda dapat menemukan informasi selengkapnya di dokumentasi Kubernetes.
Cara Autoscaler menentukan waktu untuk menskalakan
Secara berkala, pengontrol HPA membuat kueri penggunaan resource terhadap metrik yang ditentukan dalam setiap definisi HorizontalPodAutoscaler. Pengontrol mendapatkan metrik dari API metrik resource untuk setiap Pod. Kemudian, pengontrol menghitung nilai penggunaan 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 informasi selengkapnya tentang algoritma penskalaan otomatis di dokumentasi Kubernetes.
Metrik
Kf menggunakan HPA v1 yang hanya mendukung CPU sebagai metrik target.
Cara kerja Kubernetes Horizontal Autoscaler dengan Kf
Saat penskalaan otomatis diaktifkan untuk Aplikasi Kf, pengontrol Kf akan membuat objek HPA berdasarkan batas dan aturan penskalaan yang ditentukan di 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.