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
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
-
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.
RemarquegRPC 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é.
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.-
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
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
-
Créez une révision.
Cliquez sur l'onglet Services. Localisez le service cible et cliquez sur Details dans la colonne Actions.
-
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.
-
À l'étape Traffic Splitting Settings, définissez le Percent de la nouvelle révision sur 0, puis cliquez sur Create.
RemarqueLa somme des pourcentages de trafic pour toutes les révisions doit être égale à 100.
Une fois la révision créée, cliquez sur l'onglet Services pour afficher les détails de la nouvelle révision du service.
-
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-gosont toujours dirigées vers l'ancienne révision.
-
Modifiez les pourcentages de trafic pour effectuer le déploiement canari.
Sur la page Services, localisez le service cible et cliquez sur Details dans la colonne Actions.
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.
Une fois le Percent défini, cliquez sur l'onglet Services pour afficher les détails des nouvelles et anciennes révisions.
-
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.RemarqueCette 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-gode 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.