Tous les produits
Search
Centre de documentation

Container Compute Service:Perform a canary release for a service based on traffic splitting in Knative

Dernière mise à jour :Aug 12, 2026

Knative répartit le trafic entre les révisions selon des pourcentages configurables. En transférant progressivement le trafic d'une ancienne révision vers une nouvelle et en surveillant le comportement du service à chaque étape, vous validez les nouvelles versions en toute sécurité. Vous pouvez ainsi revenir instantanément à la version précédente si des problèmes surviennent.

Prérequis

Avant de commencer, assurez-vous que :

  • Knative est déployé dans votre cluster ACS. Pour plus d'informations, consultez Deploy Knative.

Étape 1 : Créer un service Knative

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

  2. Sur la page Clusters, recherchez le cluster à gérer et cliquez sur son ID. Dans le volet de navigation de gauche de la page de détails du cluster, choisissez Applications > Knative.

  3. Sur la page Knative, accédez à l'onglet Services. Définissez le Namespace sur default et cliquez sur Create Service. Sur la page de configuration, créez un service nommé helloworld-go puis cliquez sur Create. Le tableau suivant décrit les paramètres clés. Pour la référence complète des paramètres, consultez Utiliser Knative pour déployer des applications serverless. Le service est déployé lorsque la colonne Status affiche Created.

    Paramètre Description
    Namespace Namespace auquel appartient le service.
    Service Name Nom du service. Cet exemple utilise helloworld-go.
    Image Name Cliquez sur Select images, sélectionnez une image, puis cliquez sur OK. Pour utiliser un registre privé, saisissez l'adresse de l'image au format domainname/namespace/imagename:tag. Cet exemple utilise registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go.
    Access Protocol HTTP ou gRPC. Basé sur la norme HTTP/2 et le protocole de sérialisation Protocol Buffers (Protobuf), gRPC offre un transfert de données plus compact et efficace que HTTP.
    Container Port Port du conteneur à exposer. Valeurs valides : 1 à 65535.
  4. Dans l'onglet Services, cliquez sur le service helloworld-go et notez le nom de domaine du champ Default Domain ainsi que l'adresse IP de la passerelle du champ 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>

    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 ACS. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, recherchez le cluster à gérer et cliquez sur son ID. Dans le volet de navigation de gauche de la page de détails du cluster, 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 de l'assistant Basic Information, cliquez sur Advanced, définissez la variable d'environnement sur TARGET=Knative, puis cliquez sur Next.

    11

  5. Sur la page de l'assistant Traffic Splitting Settings, définissez le Percent % de la nouvelle révision sur 0 et cliquez sur Create. Affecter 0 % à la nouvelle révision maintient tout le trafic de production sur l'ancienne révision pendant le déploiement. Vous pouvez ainsi tester la nouvelle révision indépendamment avant de lui attribuer du trafic.

    La somme des pourcentages de trafic de 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!

Fractionner le trafic pour démarrer le déploiement canari

  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 50% pour l'ancienne et la nouvelle révision, puis cliquez sur OK.

  3. Exécutez la commande suivante pour vérifier que le trafic est réparti équitablement entre les deux révisions :

    Cette commande s'exécute en continu jusqu'à son arrêt. Appuyez sur Ctrl + C pour l'interrompre.
    while true; do curl -H "Host: <default_domain_name>" http://<gateway_IP_address>; sleep 1; done

    Résultat attendu :

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

    Les requêtes alternent entre l'ancienne révision (Hello World!) et la nouvelle révision (Hello Knative!), ce qui confirme la répartition 50/50.

Finaliser ou annuler le déploiement

Après avoir vérifié la stabilité de la nouvelle révision, finalisez le déploiement ou revenez à la version précédente selon vos besoins :

  • Finaliser le déploiement : Cliquez sur Split Traffic et définissez le Percent % de la nouvelle révision sur 100%. Tout le trafic est alors dirigé vers la nouvelle révision.

  • Revenir à la version précédente : Si des problèmes surviennent, cliquez sur Split Traffic et définissez le Percent % de l'ancienne révision sur 100% pour rediriger immédiatement tout le trafic vers celle-ci.

Étapes suivantes

Configurez Auto Scaling pour votre service Knative afin de gérer automatiquement les pics de trafic. Pour plus d'informations, consultez Configure auto scaling based on the number of requests.