Autoscaling

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.