Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Canary release for a Knative service

Dernière mise à jour :Sep 20, 2026

Knative vous permet de répartir le trafic entre les révisions. Définissez le pourcentage de trafic attribué à chaque révision dans la console, puis ajustez progressivement ces valeurs tout en surveillant le service. Le déploiement canari est terminé lorsque 100 % du trafic est routé vers la nouvelle révision.

Prérequis

Avant de commencer, assurez-vous d'avoir :

Déployé Knative dans votre cluster. Pour plus d'informations, consultez la rubrique Démarrage rapide : Déployer un service Knative.

É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, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Applications > Knative.

  3. Sous l'onglet Services de la page Knative, sélectionnez default dans la liste déroulante Namespace, puis cliquez sur Create Service. Configurez un service nommé helloworld-go, puis cliquez sur Create.

    Le tableau suivant décrit les principaux paramètres. Pour plus de détails sur les autres paramètres, consultez la rubrique Déployer un service Knative.

    Paramètre

    Description

    Service Name

    Nom personnalisé du service. Dans cet exemple, le nom du service est helloworld-go.

    Image Name

    Cliquez sur Select Image. Dans la boîte de dialogue qui s'affiche, sélectionnez l'image et la version souhaitées, puis cliquez sur OK.

    Vous pouvez également spécifier un registry privé. Utilisez le format domainname/namespace/imagename:tag. Dans cet exemple, utilisez registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56.

    Access Protocol

    Prend en charge les protocoles d'accès HTTP et gRPC.

    Remarque

    gRPC utilise le protocole HTTP/2 et le protocole de sérialisation Protocol Buffers (protobuf), et prend en charge un large éventail de langages de programmation. Par rapport à HTTP, HTTP/2 est plus compact et efficace pour l'envoi et la réception de données.

    Container Port

    Port à exposer sur le conteneur. Le numéro de port doit être un entier compris entre 1 et 65535.

    Si l'état Created s'affiche dans la colonne Status, le service est déployé.

  4. Sur la page Services, récupérez le domaine et l'adresse de la passerelle du service helloworld-go à partir des colonnes Default Domain et Gateway respectivement.

  5. Exécutez la commande suivante pour accéder au service helloworld-go.

    curl -H "Host: <default_domain>" http://<gateway_ip> # Replace <default_domain> and <gateway_ip> with your actual values.

    Résultat attendu :

    Hello World!

    Ce résultat indique que le service est en cours d'exécution et accessible.

Étape 2 : Créer une révision pour un déploiement canari

  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, cliquez sur Applications > Knative.

  3. Créez une révision.

    1. Cliquez sur l'onglet Services. Localisez le service cible et cliquez sur Details dans la colonne Actions.

    2. Cliquez sur Create Revision. À l'étape Basic Information de l'assistant de configuration, cliquez sur Advanced, définissez la variable d'environnement de la nouvelle révision sur TARGET=Knative, puis cliquez sur Next.

      11

    3. À l'étape Traffic Splitting Settings, définissez le Percent de la nouvelle révision sur 0, puis cliquez sur Create.

      Remarque

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

    4. Une fois la révision créée, cliquez sur l'onglet Services pour afficher les détails de la nouvelle révision du service.

    5. Exécutez la commande suivante pour accéder au service helloworld-go.

      curl -H "Host: <default_domain>" http://<gateway_ip> # Replace <default_domain> and <gateway_ip> with your actual values.

      Résultat attendu :

      Hello World!

      Ce résultat indique que le service est en cours d'exécution et accessible. Étant donné que le Percent de la nouvelle révision est défini sur 0, les requêtes adressées au service helloworld-go sont toujours dirigées vers l'ancienne révision.

  4. Modifiez les pourcentages de trafic pour effectuer le déploiement canari.

    1. Sur la page Services, localisez le service cible et cliquez sur Details dans la colonne Actions.

    2. Cliquez sur Set Traffic Percentage. Dans la boîte de dialogue Split Traffic, définissez le Percent des nouvelles et anciennes révisions sur 50 %, puis cliquez sur OK.

    3. Une fois le Percent défini, cliquez sur l'onglet Services pour afficher les détails des nouvelles et anciennes révisions.

    4. Exécutez la commande suivante pour accéder au service.

      while true; do curl -H "Host: <default_domain>" http://<gateway_ip>; sleep 1; done # Replace <default_domain> and <gateway_ip> with your actual values.
      Remarque

      Cette commande s'exécute en continu jusqu'à ce que vous l'arrêtiez. Pour arrêter la commande, appuyez sur Ctrl+C.

      Résultat attendu :

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

      Étant donné que le Percent des nouvelles et anciennes révisions est défini sur 50 % chacune, Knative répartit les requêtes adressées au service helloworld-go de manière approximativement égale entre les deux révisions.

      Poursuivez le déploiement canari du service en ajustant le Percent jusqu'à ce que le Percent de la nouvelle version atteigne 100 % pour finaliser le déploiement. Au cours de ce processus, si vous détectez des problèmes avec la nouvelle version, revenez en arrière à tout moment en ajustant le Percent.

Documentation connexe

Vous pouvez configurer la mise à l'échelle automatique d'un service Knative en fonction du nombre de requêtes. Pour plus d'informations, consultez la rubrique Mettre à l'échelle automatiquement un service en fonction du nombre de requêtes.