2026-07-20
Menggunakan Horizontal Pod Autoscaler (HPA) di OpenShift
Horizontal Pod Autoscaler (HPA) merupakan fitur Kubernetes dan OpenShift yang digunakan untuk melakukan scaling jumlah pod secara otomatis berdasarkan metrik tertentu, seperti penggunaan CPU, memory, maupun custom metrics.
Ketika beban aplikasi meningkat, HPA akan menambah jumlah pod hingga batas maksimum yang telah ditentukan. Sebaliknya, ketika beban menurun, HPA akan mengurangi jumlah pod sehingga penggunaan resource menjadi lebih efisien.
Prerequisites
- Cluster OpenShift atau Kubernetes telah berjalan.
- Deployment telah dibuat.
- Deployment memiliki nilai
requestsdanlimitsCPU atau Memory. - Metrics Server atau OpenShift Monitoring tersedia.
Scaling Berdasarkan CPU
Contoh berikut membuat HPA yang akan mempertahankan penggunaan CPU rata-rata
di angka 50%.
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: example-hpa
namespace: your-namespace
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: example-deployment
minReplicas: 1
maxReplicas: 10
targetCPUUtilizationPercentage: 50
Konfigurasi tersebut akan menambah jumlah pod apabila rata-rata penggunaan
CPU melebihi 50% dan mengurangi jumlah pod ketika penggunaan
CPU kembali normal.
Scaling Berdasarkan Memory
Pada API autoscaling/v2, HPA dapat menggunakan beberapa jenis
metrik, termasuk penggunaan memory.
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: example-hpa
namespace: your-namespace
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: example-deployment
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 50
Pada contoh tersebut, HPA akan mempertahankan rata-rata penggunaan memory
sebesar 50%.
Membuat HPA
Simpan konfigurasi ke dalam file, misalnya
hpa.yaml, kemudian jalankan:
oc apply -f hpa.yaml Verifikasi
Pastikan Horizontal Pod Autoscaler telah berhasil dibuat.
oc get hpa Untuk melihat informasi lebih lengkap:
oc describe hpa example-hpa HPA akan menampilkan informasi seperti target CPU atau memory, jumlah replica saat ini, replica minimum, replica maksimum, serta kondisi autoscaling.
Perbedaan HPA dan VPA
| Fitur | HPA | VPA |
|---|---|---|
| Scaling | Menambah atau mengurangi jumlah Pod | Mengubah CPU dan Memory setiap Pod |
| Target | Replica | Resource Request dan Limit |
| Restart Pod | Tidak | Ya (pada mode Auto) |
| Cocok untuk | Aplikasi stateless | Aplikasi dengan kebutuhan resource yang berubah |
Catatan
- HPA hanya dapat bekerja jika Deployment memiliki
resources.requests. - Pastikan Metrics Server atau OpenShift Monitoring berjalan dengan baik.
- Gunakan
autoscaling/v2untuk implementasi baru karena mendukung multiple metrics. - HPA dan VPA dapat digunakan bersamaan, tetapi perlu konfigurasi yang tepat agar tidak saling bertentangan.
Kesimpulan
Horizontal Pod Autoscaler merupakan mekanisme autoscaling yang digunakan
untuk menyesuaikan jumlah pod berdasarkan beban aplikasi. Dengan HPA,
aplikasi dapat menangani peningkatan traffic secara otomatis tanpa perlu
melakukan scaling manual. Untuk implementasi yang lebih fleksibel,
disarankan menggunakan API autoscaling/v2 karena mendukung
berbagai jenis metrik selain CPU.