Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Uso de HPA en Knative

Última actualización: Sep 04, 2026

De forma predeterminada, Knative escala las cargas de trabajo según el número de solicitudes mediante Knative Pod Autoscaler (KPA). Si sus cargas de trabajo dependen más del uso de CPU o memoria que del volumen de solicitudes, cambie a Horizontal Pod Autoscaler (HPA) para escalar según la utilización de CPU o memoria.

Requisitos previos

Antes de empezar, asegúrese de cumplir con lo siguiente:

Paso 1: Desplegar un servicio de Knative

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, localice el clúster que desea gestionar y haga clic en su nombre. En el panel izquierdo, seleccione Applications > Knative.

  3. En la pestaña Services de la página Knative, seleccione default en la lista desplegable Namespace, haga clic en Create from Template, copie el siguiente contenido YAML en el editor de código y luego haga clic en Create. El siguiente ejemplo crea un servicio de Knative llamado helloworld-go-hpa con HPA configurado para escalar según la utilización 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. Ejecute el siguiente comando para comprobar que el servicio de Knative está listo:

    kubectl get ksvc

    Salida 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

    El valor True en la columna READY confirma que el servicio se está ejecutando.

Paso 2: Probar el autoescalado con una prueba de carga

Este paso usa hey, una herramienta de pruebas de carga HTTP, para elevar la utilización de CPU por encima del umbral y observar cómo HPA escala los pods.

  1. Instale hey. Para consultar las instrucciones de instalación, visite Hey.

  2. Ejecute una prueba de carga de 60 segundos a 100 consultas por segundo (QPS):

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

    Reemplace <gateway-ip> con la dirección IP o el nombre de dominio del gateway.

  3. Mientras se ejecuta la prueba de carga, supervise el escalado de pods en una terminal independiente:

    kubectl get pods --watch

    Salida 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

    HPA aumenta la cantidad de pods de 1 a 4 cuando la utilización de CPU supera el umbral del 30%. Cada pod avanza por los estados Pending -> ContainerCreating -> Running.

(Opcional) Paso 3: Consultar el panel de Knative

Knative ofrece observability integrada para sus servicios. Consulte el panel en la pestaña Monitoring Dashboards de la página Knative. Para obtener detalles sobre la configuración y el uso, consulte View the Knative dashboard in Managed Service for Prometheus.

image.png

Pasos siguientes