All Products
Search
Document Center

Microservices Engine:Auto-scale aplikasi ACK berdasarkan QPS gateway

Last Updated:Jun 21, 2026

Sebagai titik masuk lalu lintas, gateway MSE memberikan gambaran paling akurat mengenai volume lalu lintas aplikasi Anda. Gunakan metrik queries per second (QPS) dari gateway untuk mengaktifkan auto scaling pada aplikasi di Container Service for Kubernetes (ACK), sehingga layanan backend dapat melakukan scaling sesuai permintaan. Topik ini menjelaskan cara mengonfigurasi auto scaling untuk aplikasi ACK menggunakan log akses gateway.

Prasyarat

Prosedur

  1. Terapkan resource berikut di kluster ACK Anda.

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Marketplace > Marketplace.

    2. Cari ack-alibaba-cloud-metrics-adapter dan klik kartu aplikasinya. Di halaman detail, klik Deploy. Di panel Deploy, konfigurasi parameter lalu klik OK.

      Atur parameter berikut: pilih cluster target, atur namespace menjadi kube-system, dan atur release name menjadi ack-alibaba-cloud-metrics-adapter.

    3. Di panel navigasi kiri, klik Clusters.

    4. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

    5. Di halaman Deployments, klik Create Resources in YAML. Pilih Custom dari daftar templat, tempel YAML berikut, lalu klik Create.

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: httpbin-deploy
        labels:
          app: httpbin-deploy
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: httpbin
        template:
          metadata:
            labels:
              app: httpbin
          spec:
            containers:
            - image: kennethreitz/httpbin
              imagePullPolicy: IfNotPresent
              name: httpbin
              ports:
              - name: http
                containerPort: 80
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: httpbin-svc
        namespace: default
        labels:
          app: httpbin-svc
      spec:
        ports:
          - port: 8080
            name: http
            protocol: TCP
            targetPort: 80
        selector:
          app: httpbin
        type: ClusterIP
  2. Di gateway MSE, tambahkan sumber layanan dan buat layanan.

    1. Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.

    2. Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Di halaman Gateways, klik ID gateway tersebut.

    3. Di panel navigasi kiri, klik Routes. Lalu, klik tab Source.

    4. Klik Add Source. Untuk Source Type, pilih Container Service, pilih kluster ACK tempat aplikasi Anda diterapkan, lalu klik OK.

    5. Di panel navigasi kiri, klik Routes. Lalu, klik tab Services.

    6. Klik Add Service untuk menambahkan sumber layanan ke Services, lalu klik OK.

  3. Buat aturan routing untuk layanan yang telah Anda tambahkan. Untuk informasi selengkapnya, lihat Create a routing rule.

  4. Aktifkan pengiriman log.

    1. Di panel navigasi kiri, klik Parameter Settings.

    2. Di bagian Observability Parameters, klik ikon pengaturan图标2.png di samping Log Shipping. Di kotak dialog yang muncul, aktifkan pengiriman log dan opsi Compatible with NGINX Ingress.

      Biarkan Simple Log Service (SLS) Project diatur sebagai Use Default, lalu klik OK.

  5. Di kluster ACK Anda, buat HorizontalPodAutoscaler (HPA) dan konfigurasi pengaturannya.

    Anda perlu menentukan aplikasi backend yang akan di-scale, jumlah replika minimum dan maksimum, serta metrik scaling. Konfigurasi contoh berikut melakukan scale out aplikasi ketika rata-rata QPS per pod melebihi 10. Dalam contoh ini, sls.project adalah nama proyek pengiriman log, yang dapat ditemukan di halaman Parameter Settings di konsol gateway. Format sls.ingress.route adalah <namespace>-<service-name>-<service-port>.

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: higress-hpa
    spec:
      scaleTargetRef:
        apiVersion: apps/v1beta2
        kind: Deployment
        name: httpbin-deploy
      minReplicas: 1
      maxReplicas: 10
      metrics:
        - type: External
          external:
            metric:
              name: sls_ingress_qps
              selector:
                matchLabels:
                  sls.project: "aliyun-product-data-xxxxxxxxxxxxx-cn-hangzhou"
                  sls.logstore: "nginx-ingress"
                  sls.ingress.route: "default-httpbin-svc-8080"
            target:
              type: AverageValue
              averageValue: 10
  6. Jalankan uji beban terhadap aplikasi dengan mengarahkan lalu lintas melalui gateway menggunakan QPS yang dikontrol. Kemudian, amati event HPA untuk memverifikasi perilaku scaling.

    Jalankan perintah berikut:

    kubectl describe hpa higress-hpa

    Output-nya mirip seperti berikut:

    Normal  SuccessfulRescale  9m     horizontal-pod-autoscaler  New size: 3; reason: external metric sls_ingress_qps(&LabelSelector{MatchLabels:map[string]string{sls.ingress.route: default-httpbin-svc-8080,sls.logstore: nginx-ingress,sls.project: aliyun-product-data-xxxxxxxxxxxxxxxx-cn-hangzhou,},MatchExpressions:[]LabelSelectorRequirement{},}) above target
    Normal  SuccessfulRescale  8m45s  horizontal-pod-autoscaler  New size: 4; reason: external metric sls_ingress_qps(&LabelSelector{MatchLabels:map[string]string{sls.ingress.route: default-httpbin-svc-8080,sls.logstore: nginx-ingress,sls.project: aliyun-product-data-xxxxxxxxxxxxxxxx-cn-hangzhou,},MatchExpressions:[]LabelSelectorRequirement{},}) above target
    Normal  SuccessfulRescale  5m12s  horizontal-pod-autoscaler  New size: 4; reason:
    Normal  SuccessfulRescale  3m41s  horizontal-pod-autoscaler  New size: 3; reason: All metrics below target
    Normal  SuccessfulRescale  2m55s  horizontal-pod-autoscaler  New size: 1; reason: All metrics below target