manifest.conf — profile: platform-engineer
← kembali ke catatan

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 requests dan limits CPU 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/v2 untuk 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.