Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Configure warm-up for service pods

Dernière mise à jour :Aug 11, 2026

Lorsqu'un nouveau pod démarre lors d'une mise à l'échelle horizontale, de mises à jour progressives ou de pics de trafic, il reçoit immédiatement une part proportionnelle du trafic. Pour les services qui dépendent du préchauffage JVM, du remplissage du cache ou de l'initialisation paresseuse, cette charge soudaine provoque des délais d'expiration des requêtes, des réponses lentes et une dégradation de l'expérience utilisateur.

La fonctionnalité de préchauffage dans Service Mesh (ASM) augmente progressivement le trafic vers les pods nouvellement démarrés sur une période configurable. Un nouveau pod commence avec un trafic minimal et monte en charge graduellement jusqu'à la fin de la période de préchauffage.

Fonctionnement

Configurez le préchauffage via le champ trafficPolicy.loadBalancer dans une DestinationRule. Deux champs contrôlent le comportement :

Champ Description
simple La politique d'équilibrage de charge. Valeurs valides : ROUND_ROBIN et LEAST_REQUEST.
warmupDurationSecs La durée de la fenêtre de préchauffage. Pendant cette période, Istio augmente progressivement le trafic vers le nouvel endpoint au lieu de distribuer le trafic proportionnellement.
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: mocka
spec:
  host: mocka
  trafficPolicy:
    loadBalancer:
      simple: ROUND_ROBIN
      warmupDurationSecs: 100s

Une fois la fenêtre de préchauffage écoulée, l'endpoint quitte le mode de préchauffage et reçoit le trafic selon la politique d'équilibrage de charge configurée.

Note : Le préchauffage nécessite qu'au moins un réplica de pod existant se trouve dans la zone actuelle pour prendre effet : Cluster mono-zone (zone A uniquement) : Le préchauffage prend effet à partir du deuxième pod. Le premier pod n'a aucune base de comparaison.Cluster multi-zones (zones A et B) : Si un seul pod existe dans la zone A, le démarrage d'un deuxième pod dans la zone B ne déclenche pas le préchauffage, car la planification inter-zones le traite comme un groupe distinct. Le préchauffage prend effet à partir du troisième pod.

Prérequis

Avant de commencer, assurez-vous que vous disposez des éléments suivants :

Étape 1 : Configurer les règles de routage et générer du trafic

Avant d'activer le préchauffage, établissez une ligne de base en acheminant le trafic via la passerelle ingress sans préchauffage.

Commencez par réduire le déploiement reviews-v3 à zéro réplica. Vous le redimensionnerez dans les étapes suivantes pour observer le comportement du trafic avec et sans préchauffage.

Définir la passerelle ingress

  1. Créez un fichier nommé bookinfo-gateway.yaml :

    Afficher bookinfo-gateway.yaml

       apiVersion: networking.istio.io/v1alpha3
       kind: Gateway
       metadata:
         name: bookinfo-gateway
       spec:
         selector:
           istio: ingressgateway
         servers:
         - port:
             number: 80
             name: http
             protocol: HTTP
           hosts:
           - "*"
       ---
       apiVersion: networking.istio.io/v1beta1
       kind: VirtualService
       metadata:
         name: bookinfo
       spec:
         gateways:
           - bookinfo-gateway
         hosts:
           - '*'
         http:
           - match:
             - uri:
                 exact: /productpage
             - uri:
                 prefix: /static
             - uri:
                 exact: /login
             - uri:
                 exact: /logout
             - uri:
                 prefix: /api/v1/products
             route:
               - destination:
                   host: productpage
                   port:
                     number: 9080
           - match:
             - uri:
                 prefix: /reviews
             route:
               - destination:
                   host: reviews
                   port:
                     number: 9080
  2. Appliquez la configuration :

        kubectl apply -f bookinfo-gateway.yaml

Créer la DestinationRule pour le service reviews (sans préchauffage)

  1. Créez un fichier nommé reviews.yaml :

    Afficher reviews.yaml

       apiVersion: networking.istio.io/v1beta1
       kind: DestinationRule
       metadata:
         name: reviews
       spec:
         host: reviews
         trafficPolicy:
           loadBalancer:
             simple: ROUND_ROBIN
  2. Appliquez la configuration :

        kubectl apply -f reviews.yaml

Envoyer du trafic et vérifier la topologie

Utilisez l'outil de test de charge hey pour envoyer des requêtes pendant 10 secondes :

hey -z 10s -q 100 -c 4 http://<ingress-gateway-ip>/reviews/0

Remplacez <ingress-gateway-ip> par l'adresse IP de la passerelle ingress.

Pour vérifier le flux de trafic, consultez la topologie du maillage de services. Consultez la rubrique Utiliser la topologie du maillage pour afficher la topologie d'une application.

Call topology without warm-up

Étape 2 : Observer la distribution du trafic sans préchauffage

Cette étape établit une ligne de base : comment le trafic atteint un nouveau pod lorsque le préchauffage est désactivé.

  1. Connectez-vous à la console ASM.

  2. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.

  3. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM cible ou cliquez sur Manage dans la colonne Actions.

  4. Dans le volet de navigation de gauche, choisissez Observability Management Center > Monitoring indicators.

    • Pour les versions ASM antérieures à 1.17.2.35 : Cliquez sur l'onglet Monitoring instrument, puis sur l'onglet Cloud ASM Istio Service et sélectionnez le service reviews.

    • Pour la version ASM 1.17.2.35 ou ultérieure : Cliquez sur l'onglet Cloud ASM Istio Work load, sélectionnez reviews-v3 dans la liste déroulante Workload, et sélectionnez source dans la liste déroulante Reporter.

  5. Augmentez le nombre de réplicas du déploiement reviews-v3 de zéro à un.

  6. Exécutez un test de charge de 120 secondes :

        hey -z 120s -q 100 -c 4 http://<ingress-gateway-ip>/reviews/0
  7. Observez le tableau de bord de surveillance. Sans préchauffage, le pod reviews-v3 commence à recevoir des requêtes à un débit stable environ 45 secondes après le début du test de charge. Le timing exact dépend de l'environnement.

    Dashboard without warm-up -- traffic reaches stable rate at approximately 45 seconds

  8. Après avoir observé la ligne de base, ramenez le déploiement reviews-v3 à zéro réplica.

Étape 3 : Activer le préchauffage

  1. Mettez à jour reviews.yaml pour ajouter le champ warmupDurationSecs avec la valeur 120s :

        apiVersion: networking.istio.io/v1beta1
        kind: DestinationRule
        metadata:
          name: reviews
        spec:
          host: reviews
          trafficPolicy:
            loadBalancer:
              simple: ROUND_ROBIN
              warmupDurationSecs: 120s
  2. Appliquez la configuration mise à jour :

        kubectl apply -f reviews.yaml

Étape 4 : Vérifier l'effet du préchauffage

  1. Augmentez le nombre de réplicas du déploiement reviews-v3 de zéro à un.

  2. Exécutez un test de charge de 150 secondes :

        hey -z 150s -q 100 -c 4 http://<ingress-gateway-ip>/reviews/0
  3. Sur l'onglet Cloud ASM Istio Service, observez le tableau de bord de surveillance. Avec le préchauffage activé, le pod reviews-v3 reçoit le trafic progressivement. Il atteint un débit de requêtes stable environ 120 secondes après le début du test de charge, ce qui correspond à la durée de préchauffage configurée.

    Note : La courbe peut apparaître en escalier car les métriques sont collectées à intervalles réguliers. L'augmentation réelle du trafic est fluide. Pour afficher des données de trafic plus granulaires, activez la collecte des journaux du proxy sidecar et recherchez les journaux dans la console Simple Log Service (SLS).

    Dashboard with warm-up -- traffic ramps up gradually over 120 seconds

    Sidecar proxy logs showing gradual traffic increase

  4. Une fois la fenêtre de préchauffage terminée, le trafic est réparti uniformément entre reviews-v1, reviews-v2 et reviews-v3. Dans cet exemple, la répartition uniforme est atteinte environ 150 secondes après le début du test de charge.

    Even traffic distribution after warm-up completes

Voir aussi