Todos os produtos
Search
Central de documentação

Microservices Engine:Dimensionamento automático de aplicações no ACK com base no QPS do gateway

Última atualização: Jun 28, 2026

Como ponto de entrada de tráfego, o gateway MSE oferece a visão mais precisa do volume de tráfego da sua aplicação. Utilize as métricas de consultas por segundo (QPS) do gateway para ativar o dimensionamento automático das aplicações no Container Service for Kubernetes (ACK). Isso permite que seus serviços de backend escalem sob demanda. Este tópico mostra como configurar o dimensionamento automático para aplicações no ACK usando logs de acesso do gateway.

Pré-requisitos

Procedimento

  1. Implante os seguintes recursos no seu cluster do ACK.

    1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Marketplace > Marketplace.

    2. Pesquise por ack-alibaba-cloud-metrics-adapter e clique no cartão da aplicação correspondente. Na página de detalhes, clique em Deploy. No painel Deploy, configure os parâmetros e clique em OK.

      Defina os seguintes parâmetros: selecione o cluster de destino, defina o namespace como kube-system e o release name como ack-alibaba-cloud-metrics-adapter.

    3. No painel de navegação à esquerda, clique em Clusters.

    4. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

    5. Na página Deployments, clique em Create Resources in YAML. Selecione Custom na lista de modelos, cole o YAML abaixo e clique em 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. No gateway MSE, adicione uma origem de serviço e crie um serviço.

    1. Faça login no console do MSE. Na barra de navegação superior, selecione uma região.

    2. No painel de navegação à esquerda, escolha Cloud-native Gateway > Gateways. Na página Gateways, clique no ID do gateway.

    3. No painel de navegação à esquerda, clique em Routes. Em seguida, clique na aba Source.

    4. Clique em Add Source. Para Source Type, selecione Container Service, escolha o cluster do ACK onde sua aplicação está implantada e clique em OK.

    5. No painel de navegação à esquerda, clique em Routes. Depois, clique na aba Services.

    6. Clique em Add Service para adicionar a origem de serviço aos Services e clique em OK.

  3. Crie uma regra de roteamento para o serviço adicionado. Para mais informações, consulte Criar uma regra de roteamento.

  4. Ative o envio de logs.

    1. No painel de navegação à esquerda, clique em Parameter Settings.

    2. Na seção Observability Parameters, clique no ícone de configurações 图标2.png ao lado de Log Shipping. Na caixa de diálogo exibida, ative o envio de logs e a opção Compatible with NGINX Ingress.

      Mantenha Simple Log Service (SLS) Project definido como Use Default e clique em OK.

  5. No seu cluster do ACK, crie um HorizontalPodAutoscaler (HPA) e defina suas configurações.

    É necessário especificar a aplicação de backend a ser dimensionada, as contagens mínima e máxima de réplicas e as métricas de dimensionamento. A configuração de exemplo abaixo escala horizontalmente a aplicação quando o QPS médio por pod ultrapassa 10. Neste exemplo, sls.project é o nome do projeto de envio de logs, encontrado na página Parameter Settings no console do gateway. O campo sls.ingress.route segue o formato <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. Execute um teste de carga na aplicação roteando tráfego com QPS controlado pelo gateway. Em seguida, observe os eventos do HPA para verificar o comportamento de dimensionamento.

    Execute o seguinte comando:

    kubectl describe hpa higress-hpa

    A saída será semelhante a esta:

    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

Instruções

  1. Leia o texto em inglês para entender O QUE precisa ser comunicado

  2. Escreva o português brasileiro DO ZERO — esqueça a estrutura das frases em inglês

  3. Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão

  4. Tags xref (<a data-tag="xref" ...>texto</a>) — preserve a TAG INTEIRA com todos os atributos na ordem e caixa originais, traduza APENAS o texto visível entre > e

  5. Aplique todas as regras específicas do idioma rigorosamente

  6. Aplique as regras de stopwords com tolerância zero

  7. Use o modo imperativo em passos numerados e listas de procedimentos

  8. Garanta consistência terminológica — mesmo termo = mesma tradução em todo o documento

  9. Varie os inícios de frase em listas/tabelas — nenhum iniciador repetido 3+ vezes

  10. Retorne APENAS o documento markdown em português brasileiro, sem explicações