全部产品
Search
文档中心

Container Compute Service:HPA

更新时间:Jul 02, 2025

Anda dapat membuat aplikasi dengan Horizontal Pod Autoscaler (HPA) diaktifkan di konsol Alibaba Cloud Container Compute Service (ACS) atau menggunakan kubectl. Topik ini menjelaskan cara membuat aplikasi dengan HPA diaktifkan dalam kluster ACS dan cara menguji HPA.

Prasyarat

Buat aplikasi dengan HPA diaktifkan

Gunakan konsol ACS

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

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi sebelah kiri halaman detail kluster, pilih Workloads > Deployments.

  3. Di tab Deployments, klik Create from Image.

  4. Di langkah Basic Information, masukkan nama aplikasi, atur parameter, lalu klik Next.

    Parameter

    Deskripsi

    Namespace

    Pilih namespace tempat aplikasi berada. Namespace default dipilih secara otomatis.

    Nama

    Masukkan nama untuk aplikasi.

    Replika

    Jumlah pod yang ingin Anda sediakan untuk aplikasi. Nilai default: 2.

    Tipe

    Tipe objek sumber daya. Nilai valid: Deployment, StatefulSet, Job, dan CronJob.

    Label

    Label yang ingin Anda tambahkan ke aplikasi untuk mengidentifikasi aplikasi.

    Anotasi

    Anotasi yang ingin Anda tambahkan ke aplikasi.

    Tipe Instans

    Tipe instans pod. Nilai valid: General-purpose, BestEffort, dan Performance-enhanced.

  5. Di langkah Container, atur parameter kontainer, pilih image, lalu konfigurasikan sumber daya komputasi yang diperlukan. Klik Next. Untuk informasi lebih lanjut, lihat Konfigurasikan Kontainer.

    Catatan

    Anda harus mengonfigurasi sumber daya komputasi yang diperlukan oleh Deployment. Jika tidak, Anda tidak dapat mengaktifkan HPA.

  6. Di bagian Access Control dari langkah Advanced, klik Create untuk membuat Layanan. Untuk informasi lebih lanjut, lihat Pengaturan Lanjutan.

  7. Di langkah Advanced, pilih Enable untuk HPA dan konfigurasikan ambang penskalaan serta pengaturan terkait.

    • Metric: Pilih Penggunaan CPU atau Penggunaan Memori. Tipe sumber daya yang dipilih harus sesuai dengan yang ditentukan di parameter Sumber Daya yang Dibutuhkan.

    • Condition: Tentukan ambang batas penggunaan sumber daya. HPA memicu peristiwa penskalaan ketika ambang batas terlampaui. Untuk informasi lebih lanjut tentang algoritma yang digunakan untuk melakukan penskalaan otomatis Pod horizontal, lihat Detail Algoritma.

    • Max. Replicas: Tentukan jumlah maksimum pod ke mana Deployment dapat diperluas.

    • Min. Replicas: Tentukan jumlah minimum pod ke mana Deployment dapat dikurangi.

  8. Di pojok kanan bawah langkah Lanjutan, klik Create untuk membuat aplikasi dengan HPA diaktifkan.

Gunakan kubectl

Anda juga dapat menerapkan HPA menggunakan template orkestrasi dan mengaitkan HPA dengan Deployment tempat Anda ingin mengaktifkan HPA. Kemudian, jalankan perintah kubectl untuk mengaktifkan HPA.

Contoh berikut menunjukkan cara mengaktifkan HPA untuk aplikasi NGINX.

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

    Contoh:

    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 <image_name:tags> Anda
            ports:
            - containerPort: 80
            resources:
              requests:                         ## Parameter ini diperlukan untuk menjalankan HPA. 
                cpu: 500m
  2. Jalankan perintah berikut untuk membuat aplikasi NGINX:

    kubectl apply -f nginx.yaml
  3. Buat file bernama hpa.yaml dan salin konten berikut ke file:

    Gunakan parameter scaleTargetRef untuk mengaitkan HPA dengan Deployment nginx.

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: nginx-hpa
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: nginx
      minReplicas: 1  # Jumlah minimum pod ke mana Deployment dapat dikurangi. Nilainya harus bilangan bulat lebih besar atau sama dengan 1.
      maxReplicas: 10 # Jumlah maksimum pod ke mana Deployment dapat diperluas. Nilainya harus lebih besar dari nilai minReplicas.
      metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 50 # Rata-rata utilisasi sumber daya, yaitu rasio antara rata-rata penggunaan sumber daya dengan jumlah sumber daya yang diminta.
  4. Jalankan perintah berikut untuk menerapkan HPA:

    kubectl apply -f hpa.yaml
  5. Setelah HPA diterapkan, jalankan perintah kubectl describe hpa <Nama HPA> lagi.

    Jika keluaran berikut dikembalikan, HPA berjalan sesuai harapan:

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

Referensi

Untuk informasi lebih lanjut tentang Cron Horizontal Pod Autoscaler (CronHPA), lihat CronHPA.