Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Use HPA in Knative

Dernière mise à jour :Aug 11, 2026

Par défaut, Knative met à l'échelle les charges de travail en fonction du nombre de requêtes via le Knative Pod Autoscaler (KPA). Si vos charges de travail sont limitées par le processeur ou la mémoire plutôt que par les requêtes, basculez vers le Horizontal Pod Autoscaler (HPA) pour effectuer la mise à l'échelle sur la base de l'utilisation du processeur ou de la mémoire.

Prérequis

Avant de commencer, assurez-vous d'avoir :

Étape 1 : Déployer un service Knative

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, localisez le cluster à gérer et cliquez sur son nom. Dans le volet de gauche, choisissez Applications > Knative.

  3. Dans l'onglet Services de la page Knative, sélectionnez default dans la liste déroulante Namespace, puis cliquez sur Create from Template. Copiez le contenu YAML suivant dans l'éditeur de code, puis cliquez sur Create. L'exemple ci-dessous crée un service Knative nommé helloworld-go-hpa avec une configuration HPA basée sur l'utilisation du processeur :

    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. Exécutez la commande suivante pour vérifier que le service Knative est prêt :

    kubectl get ksvc

    Sortie attendue :

    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

    La valeur True dans la colonne READY confirme que le service est en cours d'exécution.

Étape 2 : Tester la mise à l'échelle automatique avec un test de charge

Cette étape utilise hey, un outil de test de charge HTTP, pour faire dépasser le seuil d'utilisation du processeur et observer la mise à l'échelle des pods par HPA.

  1. Installez hey. Pour les instructions d'installation, consultez Hey.

  2. Exécutez un test de charge de 60 secondes à 100 requêtes par seconde (QPS) :

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

    Remplacez <gateway-ip> par l'adresse IP ou le nom de domaine de la passerelle.

  3. Pendant l'exécution du test de charge, surveillez la mise à l'échelle des pods dans un terminal distinct :

    kubectl get pods --watch

    Sortie attendue :

    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

    Le HPA fait passer le nombre de pods de 1 à 4 lorsque l'utilisation du processeur dépasse le seuil de 30 %. Chaque pod passe successivement par les états Pending -> ContainerCreating -> Running.

(Facultatif) Étape 3 : Afficher le tableau de bord Knative

Knative offre une observabilité prête à l'emploi pour les services Knative. Affichez le tableau de bord dans l'onglet Monitoring Dashboards de la page Knative. Pour la configuration et l'utilisation, consultez la rubrique Afficher le tableau de bord Knative dans Managed Service for Prometheus.

image.png

Étapes suivantes