Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Canary release a Knative Service with traffic splitting

Dernière mise à jour :Aug 11, 2026

Lorsque vous déployez une nouvelle version d'un service Knative, router l'intégralité du trafic vers cette version présente un risque d'interruption de service si des problèmes surviennent. La répartition du trafic vous permet d'acheminer initialement un faible pourcentage des requêtes vers la nouvelle révision, de vérifier sa stabilité, puis d'augmenter progressivement sa part. Si des anomalies sont détectées à n'importe quelle étape, vous pouvez immédiatement basculer le trafic vers la révision précédente.

Fonctionnement

Dans Knative sur Alibaba Cloud Service Mesh (ASM), chaque service Knative possède une ou plusieurs révisions :

  • Lors de la création d'un service Knative, la première révision est automatiquement générée par Knative.

  • Chaque mise à jour de la configuration du service entraîne la création d'une nouvelle révision par Knative.

  • Vous définissez le pourcentage de trafic acheminé vers chaque révision. La somme des pourcentages attribués à toutes les révisions doit être égale à 100 %.

Un déploiement en canari suit généralement la progression suivante :

  1. Créez une nouvelle révision et attribuez-lui 0 % du trafic.

  2. Vérifiez que la nouvelle révision fonctionne correctement.

  3. Déplacez progressivement le trafic de la révision précédente vers la nouvelle (par exemple, 10 % -> 50 % -> 100 %).

  4. Si des problèmes surviennent à n'importe quel stade, ramenez le trafic de la nouvelle révision à 0 % et rétablissez la révision précédente à 100 %.

Prérequis

Avant de commencer, assurez-vous d'avoir :

Remarque

Cette rubrique utilise le nom de domaine par défaut example.com. Pour utiliser un nom de domaine personnalisé, consultez la rubrique Configurer un nom de domaine personnalisé dans Knative sur ASM.

Étape 1 : Créer une nouvelle révision avec 0 % de trafic

Créez une nouvelle révision sans lui envoyer de trafic de production. Cela vous permet de confirmer que le déploiement de la révision aboutit avant de l'exposer aux utilisateurs.

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

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, choisissez Applications > Knative.

  3. Cliquez sur l'onglet Services. Recherchez votre service et cliquez sur son nom. Dans le coin supérieur droit, cliquez sur Create Revision.

  4. À l'étape Basic Information, cliquez sur Advanced en bas de page. Cliquez sur Add à côté de Environment Variables et configurez les paramètres suivants. Cliquez sur Next.

    Parameter Value
    Type Custom
    Variable Key TARGET
    Value/ValueFrom Knative on ASM
  5. À l'étape Traffic Splitting Settings, définissez Percent % sur 0 pour Latest Revision et sur 100 pour la révision précédente. Cliquez sur Create.

    Remarque

    La somme des pourcentages de trafic pour toutes les révisions doit être égale à 100 %.

  6. Une fois la révision créée, cliquez sur l'onglet Services et cliquez sur le nom de votre service. Dans la section Revision Information, vérifiez que la nouvelle révision apparaît.

  7. Exécutez la commande suivante pour confirmer que tout le trafic est toujours dirigé vers la révision précédente. Résultat attendu : chaque requête renvoie Hello World!, ce qui confirme que la révision précédente gère toujours 100 % du trafic.

       curl http://helloworld-go.default.example.com
       Hello World!

Étape 2 : Basculer le trafic vers la nouvelle révision

Augmentez progressivement le pourcentage de trafic alloué à la nouvelle révision tout en surveillant l'apparition d'éventuels problèmes.

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

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, choisissez Applications > Knative.

  3. Cliquez sur l'onglet Services et cliquez sur le nom de votre service. Dans le coin supérieur droit, cliquez sur Split Traffic. Dans la boîte de dialogue Split Traffic, définissez Percent % sur 50 pour la dernière révision ainsi que pour la révision précédente, puis cliquez sur OK.

  4. Après avoir enregistré la répartition du trafic, cliquez sur l'onglet Services et cliquez sur le nom de votre service. Dans la section Revision Information, vérifiez les pourcentages de trafic mis à jour.

  5. Envoyez plusieurs requêtes pour vérifier que le trafic est bien réparti entre les deux révisions. Résultat attendu (abrégé) : les réponses alternent entre Hello World! (révision précédente) et Hello Knative on ASM! (nouvelle révision), correspondant approximativement à la répartition 50/50.

       for i in $(seq 20); do curl http://helloworld-go.default.example.com; done
       Hello Knative on ASM!
       Hello Knative on ASM!
       Hello World!
       Hello Knative on ASM!
       Hello World!
       ...
  6. Si la nouvelle révision est stable, répétez l'étape 3 pour augmenter son pourcentage de trafic. Poursuivez jusqu'à ce que la nouvelle révision gère 100 % du trafic.

  7. Une fois que la nouvelle révision atteint 100 %, vérifiez le basculement complet. Résultat attendu : chaque requête renvoie Hello Knative on ASM!, ce qui confirme que le déploiement en canari est terminé.

       for i in $(seq 20); do curl http://helloworld-go.default.example.com; done
       Hello Knative on ASM!
       Hello Knative on ASM!
       Hello Knative on ASM!
       ...

Revenir à la révision précédente

Si la nouvelle révision présente des erreurs, une latence élevée ou un comportement inattendu à n'importe quel moment du déploiement en canari, effectuez immédiatement un retour arrière :

  1. Sur la page des détails du service, cliquez sur Split Traffic dans le coin supérieur droit.

  2. Dans la boîte de dialogue Split Traffic, définissez Percent % sur 0 pour la nouvelle révision et sur 100 pour la révision précédente. Cliquez sur OK.

  3. Vérifiez le retour arrière en envoyant des requêtes. Toutes les réponses doivent renvoyer Hello World!, ce qui confirme que le trafic est entièrement restauré vers la révision précédente.

       for i in $(seq 20); do curl http://helloworld-go.default.example.com; done

Étapes suivantes

Après un déploiement en canari, configurez la mise à l'échelle automatique afin que le nombre de pods s'ajuste automatiquement au volume de trafic. Knative Serving ajoute un conteneur Queue Proxy à chaque pod, qui rapporte les métriques de concurrence au Knative Pod Autoscaler (KPA). Le KPA met ensuite à l'échelle le nombre de pods en fonction du volume de requêtes simultanées. Pour plus de détails, consultez la rubrique Activer la mise à l'échelle automatique des pods en fonction du nombre de requêtes.