Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Use HPA in Knative

Última atualização: Jun 27, 2026

Por padrão, o Knative dimensiona cargas de trabalho com base na contagem de requisições usando o Knative Pod Autoscaler (KPA). Se suas cargas de trabalho forem limitadas por CPU ou memória, em vez de orientadas por requisições, alterne para o Horizontal Pod Autoscaler (HPA) para dimensionar com base na utilização de CPU ou de memória.

Pré-requisitos

Antes de começar, verifique se você tem:

Etapa 1: Implantar um serviço do Knative

  1. Faça logon no console ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, localize o cluster que deseja gerenciar e clique em nome dele. No painel à esquerda, escolha Applications > Knative.

  3. Na aba Services da página Knative, selecione default na lista suspensa Namespace, clique em Create from Template, copie o conteúdo YAML a seguir para o editor de código e clique em Create. O exemplo abaixo cria um serviço do Knative chamado helloworld-go-hpa com o HPA configurado para dimensionar com base na utilização de CPU:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go-hpa
    spec:
      template:
        metadata:
          labels:
            app: helloworld-go-hpa
          annotations:
            autoscaling.knative.dev/class: "hpa.autoscaling.knative.dev"  # Use HPA instead of the default KPA
            autoscaling.knative.dev/metric: "cpu"                          # Scale on CPU utilization
            autoscaling.knative.dev/target: "30"                           # Scale out when CPU utilization exceeds 30%
            autoscaling.knative.dev/minScale: "1"                          # Keep at least 1 pod running
            autoscaling.knative.dev/maxScale: "4"                          # Cap at 4 pods
        spec:
          containers:
            - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/autoscale-go:v1024
              resources:
                requests:
                  cpu: '200m'
  4. Execute o comando a seguir para verificar se o serviço do Knative está pronto:

    kubectl get ksvc

    Saída esperada:

    NAME                   URL                                               LATESTCREATED                LATESTREADY                  READY   REASON
    helloworld-go-hpa      http://helloworld-go-hpa.default.example.com      helloworld-go-hpa-00001      helloworld-go-hpa-00001      True

    O valor True na coluna READY confirma que o serviço está em execução.

Etapa 2: Testar o dimensionamento automático com um teste de carga

Esta etapa usa o hey, uma ferramenta de teste de carga HTTP, para elevar a utilização de CPU acima do limiar e observar o HPA escalando horizontalmente os pods.

  1. Instale o hey. Para instruções de instalação, consulte Hey.

  2. Execute um teste de carga de 60 segundos com 100 consultas por segundo (QPS):

    hey -z 60s -q 100 \
      -host "helloworld-go-hpa.default.example.com" \
      "http://<gateway-ip>?prime=40000000"

    Substitua <gateway-ip> pelo endereço IP ou nome de domínio do gateway.

  3. Durante a execução do teste de carga, monitore o dimensionamento dos pods em um terminal separado:

    kubectl get pods --watch

    Saída esperada:

    NAME                                                     READY   STATUS              RESTARTS   AGE
    helloworld-go-hpa-00001-deployment-67cc8f979b-fxfl5      2/2     Running             0          101m
    helloworld-go-hpa-00001-deployment-67cc8f979b-kv6rj      0/2     Pending             0          0s
    helloworld-go-hpa-00001-deployment-67cc8f979b-fxq85      0/2     Pending             0          0s
    helloworld-go-hpa-00001-deployment-67cc8f979b-kv6rj      0/2     ContainerCreating   0          0s
    helloworld-go-hpa-00001-deployment-67cc8f979b-fxq85      0/2     ContainerCreating   0          0s
    helloworld-go-hpa-00001-deployment-67cc8f979b-kv6rj      1/2     Running             0          1s
    helloworld-go-hpa-00001-deployment-67cc8f979b-kv6rj      2/2     Running             0          1s
    helloworld-go-hpa-00001-deployment-67cc8f979b-fxq85      1/2     Running             0          1s
    helloworld-go-hpa-00001-deployment-67cc8f979b-fxq85      2/2     Running             0          1s

    O HPA aumenta a quantidade de pods de 1 para 4 quando a utilização de CPU ultrapassa o limiar de 30%. Cada pod passa pelos estados Pending -> ContainerCreating -> Running.

(Opcional) Etapa 3: Visualize o painel do Knative

O Knative oferece observabilidade nativa para seus serviços. Visualize o painel na aba Monitoring Dashboards da página Knative. Para configuração e uso, consulte Visualizar o painel do Knative no Managed Service for Prometheus.

image.png

Próximos passos