All Products
Search
Document Center

Container Compute Service:Horizontal Pod Autoscaler (HPA)

Last Updated:Jun 18, 2026

Horizontal Pod Autoscaler (HPA) secara otomatis menyesuaikan jumlah replika Pod berdasarkan pemanfaatan resource. Di Container Service for Kubernetes (ACK), Anda dapat mengaktifkan HPA untuk aplikasi melalui Konsol atau kubectl.

Prasyarat

Buat aplikasi yang diaktifkan HPA

Gunakan Konsol

  1. Masuk ke Konsol ACS. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Deployments.

  3. Pada halaman Deployments, klik Create with Image.

  4. Pada halaman Basic Information, atur parameter aplikasi lalu klik Next.

    Parameter

    Deskripsi

    Namespace

    Namespace untuk aplikasi. Nilai default: default.

    Application Name

    Nama aplikasi.

    Replicas

    Jumlah pod untuk aplikasi. Default: 2.

    Workload

    Jenis workload. Pilih Deployments, StatefulSets, Jobs, atau CronJobs.

    Labels

    Label untuk mengidentifikasi aplikasi.

    Annotations

    Anotasi untuk aplikasi.

    Instance Type

    Tipe instans pod. Pilih General-purpose, BestEffort, atau Performance-enhanced.

  5. Pada halaman Container, konfigurasikan kontainer, pilih image, dan tentukan permintaan resource. Lalu, klik Next. Untuk informasi selengkapnya, lihat Container configuration.

    Catatan

    HPA memerlukan permintaan resource yang ditentukan untuk Deployment.

  6. Pada halaman Advanced, di bagian Access Control, klik Create di samping Service, lalu konfigurasikan parameter Service. Untuk informasi selengkapnya, lihat Advanced configurations.

  7. Pada halaman Advanced, pilih Enable untuk HPA dan konfigurasikan parameter penskalaan.

    • Metric: Metrik yang didukung adalah CPU dan memory. Harus sesuai dengan jenis resource yang dikonfigurasi.

    • Condition:: Persentase pemanfaatan resource. Kontainer melakukan scale out ketika pemanfaatan melebihi nilai ini. Untuk informasi selengkapnya tentang algoritma Horizontal Pod Autoscaling, lihat Algorithm details.

    • Max. Replicas: Jumlah maksimum kontainer yang dapat dijalankan oleh Deployment.

    • Min. Replicas: Batas bawah jumlah replika.

  8. Klik Create untuk membuat Deployment yang diaktifkan HPA.

Gunakan kubectl

Anda juga dapat menggunakan template orkestrasi dan kubectl untuk membuat objek HPA dan mengaitkannya ke Deployment.

Contoh berikut menggunakan aplikasi NGINX.

  1. Buat file bernama nginx.yaml dan salin konten berikut ke dalamnya.

    apiVersion: apps/v1 
    kind: Deployment
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx  
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/nginx:1.7.9 # Ganti dengan nama dan tag image Anda
            ports:
            - containerPort: 80
            resources:
              requests:                         ## Diperlukan agar HPA berfungsi.
                cpu: 500m
  2. Jalankan perintah berikut untuk men-deploy aplikasi NGINX.

    kubectl apply -f nginx.yaml
  3. Buat file hpa.yaml dengan konten berikut untuk mendefinisikan HPA.

    Bidang scaleTargetRef menentukan resource yang diskalakan oleh HPA. Pada contoh ini, targetnya adalah Deployment nginx.

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: nginx-hpa
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: nginx
      minReplicas: 1  # Jumlah replika minimum. Harus >= 1.
      maxReplicas: 10 # Jumlah replika maksimum. Harus > minReplicas.
      metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 50 # Target pemanfaatan rata-rata di semua pod, dihitung sebagai (penggunaan rata-rata / jumlah yang diminta).
                   
  4. Jalankan perintah berikut untuk membuat HPA.

    kubectl apply -f hpa.yaml
  5. Setelah HPA dibuat, jalankan kubectl describe hpa <HPA_NAME>.

    Output berikut menunjukkan bahwa HPA berfungsi dengan benar.

     Type    Reason             Age    From                       Message
      ----    ------             ----   ----                       -------
      Normal  SuccessfulRescale  4m53s  horizontal-pod-autoscaler  New size: 1; reason: All metrics below target

Informasi terkait

Untuk autoscaling terjadwal, lihat Cron Horizontal Pod Autoscaler (CronHPA).