Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Perform a canary release based on traffic splitting for a Knative Service

Dernière mise à jour :Aug 11, 2026

Lorsque vous déployez une nouvelle version d'un service Knative, acheminer l'intégralité du trafic vers cette version expose les utilisateurs à des bugs potentiels. Knative vous permet de répartir le trafic entre plusieurs révisions selon un pourcentage défini. Vous pouvez ainsi valider une nouvelle révision avec une petite portion du trafic de production avant de la déployer complètement, ou revenir immédiatement en arrière si des problèmes sont détectés.

Prérequis

Avant de commencer, assurez-vous d'avoir :

Fonctionnement

Un déploiement canari avec Knative Serving se déroule en trois étapes :

Étape Action Description
Déploiement Créer une nouvelle révision Déployez une nouvelle version de votre service Knative sous forme de révision avec 0 % du trafic. Elle est active mais ne traite pas encore de requêtes.
Validation Transférer progressivement le trafic Acheminez un pourcentage du trafic (par exemple, 50 %) vers la nouvelle révision et vérifiez son bon fonctionnement.
Finalisation ou retour arrière Définir le trafic à 100 % ou revenir en arrière Déployez complètement la nouvelle révision en lui attribuant tout le trafic, ou revenez à la révision précédente en lui renvoyant l'intégralité du trafic.

Étape 1 : Créer un service Knative

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

  2. Sur la page Clusters, recherchez le cluster souhaité et cliquez sur son nom. Dans le volet de navigation de gauche, choisissez Applications > Knative.

  3. Dans l'onglet Services de la page Knative, définissez Namespace sur default. Cliquez sur Create Service pour déployer un service nommé helloworld-go. Après avoir configuré le service, cliquez sur Create. Le tableau suivant décrit les paramètres clés. Pour plus de détails, consultez la rubrique Déployer un service Knative. Lorsque la colonne Status affiche Created, le service est déployé.

    Paramètre Description
    Service Name Saisissez un nom pour le service. Cet exemple utilise helloworld-go.
    Image Name Cliquez sur Select Image pour choisir une image et une balise, puis cliquez sur OK. Vous pouvez également saisir l'adresse d'un registre privé au format domainname/namespace/imagename:tag. Cet exemple utilise registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56.
    Access Protocol Prend en charge HTTP et gRPC. gRPC repose sur la norme HTTP/2 et la sérialisation Protocol Buffers (protobuf), et prend en charge plusieurs langages de programmation.
    Container Port Port du conteneur à exposer. Valeurs valides : 1 à 65535.
  4. Dans l'onglet Services, cliquez sur le service helloworld-go et notez son nom de domaine et l'adresse IP de la passerelle à partir des champs Default Domain et Gateway.

  5. Exécutez la commande suivante pour vérifier que le service est accessible :

    curl -H "Host: <default_domain_name>" http://<gateway_IP_address>

    Remplacez <default_domain_name> et <gateway_IP_address> par les valeurs réelles. Résultat attendu :

    Hello World!

Étape 2 : Créer une révision et déployer une version canari

Créer une révision

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

  2. Sur la page Clusters, recherchez le cluster souhaité et cliquez sur son nom. Dans le volet de navigation de gauche, choisissez Applications > Knative.

  3. Dans l'onglet Services, sélectionnez le service helloworld-go et cliquez sur Details dans la colonne Actions.

  4. Cliquez sur Create Revision. Sur la page Basic Information, cliquez sur Advanced, définissez la variable d'environnement sur TARGET=Knative et cliquez sur Next.

    Create revision - advanced settings

  5. Sur la page Traffic Splitting Settings, définissez le Percent % du trafic pour la dernière révision sur 0 et 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, exécutez la commande suivante pour confirmer que tout le trafic est toujours dirigé vers l'ancienne révision :

    curl -H "Host: <default_domain_name>" http://<gateway_IP_address>

    Résultat attendu :

    Hello World!

    Le résultat affiche Hello World! car la nouvelle révision a un pourcentage de trafic de 0 %, donc toutes les requêtes sont toujours routées vers l'ancienne révision.

Transférer le trafic vers la nouvelle révision

  1. Dans l'onglet Services, sélectionnez le service helloworld-go et cliquez sur Details dans la colonne Actions.

  2. Cliquez sur Split Traffic. Dans la boîte de dialogue Split Traffic, définissez le Percent % du trafic sur 50 pour l'ancienne et la nouvelle révision, puis cliquez sur OK.

  3. Exécutez la commande en boucle suivante pour observer la distribution du trafic en direct :

    Remarque

    La commande s'exécute indéfiniment. Appuyez sur Ctrl + C pour l'arrêter.

    while true; do curl -H "Host: <default_domain_name>" http://<gateway_IP_address>; sleep 1; done

    Résultat attendu avec une répartition 50/50 :

    Hello World!
    Hello Knative!
    Hello World!
    Hello Knative!
    Hello World!
    Hello Knative!
    ...

    Les requêtes adressées à helloworld-go sont réparties uniformément entre l'ancienne et la nouvelle révision.

  4. Continuez à ajuster le pourcentage de trafic en fonction des résultats de votre validation. Pour modifier la répartition, cliquez sur Split Traffic dans l'onglet Services et mettez à jour les valeurs de pourcentage. Définissez Percent % sur 100 pour la nouvelle révision afin de la déployer complètement.

Revenir à la révision précédente

Si vous détectez des problèmes dans la nouvelle révision, revenez en arrière en dirigeant tout le trafic vers l'ancienne révision.

  1. Dans l'onglet Services, sélectionnez le service helloworld-go et cliquez sur Details dans la colonne Actions.

  2. Cliquez sur Split Traffic. Dans la boîte de dialogue Split Traffic, définissez le Percent % sur 100 pour l'ancienne révision et sur 0 pour la nouvelle révision, puis cliquez sur OK. Toutes les requêtes sont désormais routées vers l'ancienne révision. Vérifiez le retour arrière en exécutant la commande curl : le résultat ne doit afficher que Hello World!.

Étapes suivantes

Configurez la mise à l'échelle automatique pour un service Knative en fonction du volume de requêtes. Pour plus d'informations, consultez la rubrique Activer la mise à l'échelle automatique pour faire face aux fluctuations du trafic.