Cloud Run for Anthos vous permet d'indiquer les révisions qui doivent recevoir du trafic et de spécifier les pourcentages de trafic reçus par une révision. Cette fonctionnalité vous permet d'effectuer un rollback vers une révision précédente, de déployer progressivement une révision (un processus également appelé "déploiement bleu-vert") et de répartir le trafic entre plusieurs révisions. Cette page explique comment utiliser cette fonctionnalité pour gérer le trafic vers vos révisions Cloud Run pour Anthos.
Effectuer un rollback vers une révision précédente
Pour effectuer un rollback vers une version précédente :
Console
Accédez à Cloud Run for Anthos dans la console Google Cloud :
Localisez le service dans la liste des services, puis cliquez dessus.
Cliquez sur l'onglet Revisions (Révisions) afin d'afficher la liste des révisions en cours pour ce service.
Dans la liste des révisions, cliquez sur l'icône représentant trois points à droite de la révision pour laquelle vous effectuez le rollback :
Cliquez sur Manage Traffic (Gérer le trafic) pour afficher le formulaire de gestion du trafic :
- Dans la liste déroulante, sélectionnez la révision précédente vers laquelle vous souhaitez effectuer le rollback.
- Définissez le pourcentage de trafic de la révision précédente sur 100.
- Définissez le pourcentage de la révision actuellement diffusée sur 0.
- Cliquez sur Enregistrer.
Ligne de commande
Exécutez la commande suivante :
gcloud run services update-traffic SERVICE --to-revisions REVISION=100
- Remplacez SERVICE par le nom du service.
- Remplacez REVISION par le nom de la révision vers laquelle vous effectuez le rollback.
YAML
Vous pouvez télécharger la configuration d'un service existant dans un fichier YAML avec la commande gcloud run services describe
à l'aide de l'option --format=export
.
Vous pouvez ensuite modifier ce fichier YAML et déployer ces modifications à l'aide de la commande gcloud beta run services replace
.
Veillez à ne modifier que les attributs spécifiés.
Téléchargez la configuration de votre service dans un fichier nommé
service.yaml
sur l'espace de travail local :gcloud run services describe SERVICE --format export > service.yaml
Remplacez SERVICE par le nom de votre service Cloud Run pour Anthos.
Dans votre fichier local, mettez à jour l'attribut
traffic
situé sousspec
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION percent: 100
Remplacer
- REVISION par le nom de la révision vers laquelle vous effectuez le rollback.
Remplacez la configuration du service en utilisant la commande suivante :
gcloud beta run services replace service.yaml
Déployer progressivement une révision
Pour déployer progressivement une nouvelle révision (déploiement bleu-vert) :
Console
Accédez à Cloud Run for Anthos dans la console Google Cloud :
Localisez le service dans la liste des services, puis cliquez dessus.
Cliquez sur Déployer une nouvelle révision.
Remplissez le formulaire de déploiement selon vos besoins, mais assurez-vous que la case Diffuser immédiatement la révision est DÉCOCHÉE.
Cliquez sur Déployer.
Cliquez sur Gérer le trafic.
La nouvelle révision est répertoriée, mais avec un pourcentage défini sur 0 : elle ne diffuse actuellement aucun trafic. Dans le formulaire :
- Définissez le pourcentage souhaité pour cette révision, par exemple 5. Notez que le pourcentage de la version actuellement diffusée est automatiquement réduit de cette même valeur.
- Cliquez sur Enregistrer.
- Répétez les étapes permettant de gestion du trafic, mais avec les pourcentages modifiés, en augmentant la valeur selon les besoins de la nouvelle révision. Vous n'avez pas besoin d'effectuer un redéploiement pour modifier les pourcentages de trafic.
Ligne de commande
Pour déployer la révision que vous souhaitez déployer progressivement, en la réglant initialement pour qu'elle ne reçoive aucun trafic, utilisez la commande
update
avec le paramètre--no-traffic
:gcloud run deploy --image IMAGE --no-traffic
Remplacez IMAGE par l'image que vous déployez.
Spécifiez le pourcentage de trafic que la nouvelle révision doit gérer, par exemple 5 % :
gcloud run services update-traffic SERVICE --to-revisions REVISION=PERCENTAGE
- Remplacez SERVICE par le nom du service.
- Remplacez REVISION par le nom de la révision que vous déployez progressivement. Pour spécifier la dernière révision, vous pouvez utiliser
LATEST
, par exempleLATEST=5
. - Remplacez PERCENTAGE par le pourcentage de trafic que vous souhaitez envoyer à la nouvelle révision, par exemple
5
pour lui envoyer 5 % du trafic.
Une fois que les performances de la révision sont satisfaisantes, répétez l'étape
update-traffic
précédente, mais augmentez le pourcentage selon vos besoins.
YAML
Vous pouvez télécharger la configuration d'un service existant dans un fichier YAML avec la commande gcloud run services describe
à l'aide de l'option --format=export
.
Vous pouvez ensuite modifier ce fichier YAML et déployer ces modifications à l'aide de la commande gcloud beta run services replace
.
Veillez à ne modifier que les attributs spécifiés.
Téléchargez la configuration de votre service dans un fichier nommé
service.yaml
sur l'espace de travail local :gcloud run services describe SERVICE --format export > service.yaml
Remplacez SERVICE par le nom de votre service Cloud Run pour Anthos.
Apportez toutes les modifications souhaitées à la configuration du service, comme décrit dans les différentes pages de configuration, puis spécifiez le nom que vous voulez attribuer à la nouvelle révision :
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE template: metadata: annotations: ... name: REVISION-NAME ``` Replace
- REVISION-NAME par le nom souhaité pour la révision.
Sous l'attribut
spec
, localisez et mettez à jour l'attributtraffic
afin que la nouvelle révision ne diffuse qu'une faible quantité de trafic :apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION-NEW percent: PERCENT-NEW - revisionName: REVISION-FORMER percent: PERCENT-FORMER
Notez que la somme des pourcentages doit être égale à 100. Remplacer
- REVISION-NEW par le nom de la révision soumise au déploiement progressif ;
- REVISION-FORMER par le nom de la révision assurant actuellement la diffusion ;
- PERCENT-NEW par le pourcentage de trafic que vous souhaitez envoyer à la nouvelle révision (par exemple, utilisez
10
pour envoyer 10 % du trafic vers cette révision) ; - PERCENT-FORMER par le pourcentage de trafic que vous souhaitez envoyer à l'ancienne révision.
Répartir le trafic entre plusieurs révisions
Pour répartir le trafic entre deux révisions ou plus :
Console
Accédez à Cloud Run for Anthos dans la console Google Cloud :
Localisez le service dans la liste des services, puis cliquez dessus.
Cliquez sur Gérer le trafic.
La nouvelle révision actuellement diffusée s'affiche. Dans le formulaire :
- Définissez le pourcentage de la révision actuellement diffusée sur la répartition souhaitée.
- Sélectionnez l'une des révisions précédentes à l'aide de la liste déroulante, puis définissez-la sur le pourcentage de répartition souhaité.
- Pour répartir le trafic entre plusieurs révisions, cliquez sur Ajouter une révision, sélectionnez la révision souhaitée, puis définissez le pourcentage sur la répartition souhaitée.
- Cliquez sur Enregistrer.
Ligne de commande
Spécifiez les révisions et le pourcentage de trafic pour chaque révision sous forme de liste, en les séparant par une virgule :
gcloud run services update-traffic SERVICE --to-revisions LIST
Remplacez :
- SERVICE par le nom du service ;
- LIST par une liste de révisions séparées par une virgule pour lesquelles vous souhaitez recevoir du trafic et le pourcentage correspondant du trafic, pour un total de 100 % :
REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEn
par exemple,hello2-00005-red=25,hello2-00001-bod=25,hello2-00002-nan=50
.
YAML
Vous pouvez télécharger la configuration d'un service existant dans un fichier YAML avec la commande gcloud run services describe
à l'aide de l'option --format=export
.
Vous pouvez ensuite modifier ce fichier YAML et déployer ces modifications à l'aide de la commande gcloud beta run services replace
.
Veillez à ne modifier que les attributs spécifiés.
Téléchargez la configuration de votre service dans un fichier nommé
service.yaml
sur l'espace de travail local :gcloud run services describe SERVICE --format export > service.yaml
Remplacez SERVICE par le nom de votre service Cloud Run pour Anthos.
Dans votre fichier local, mettez à jour l'attribut
traffic
afin que la nouvelle révision ne diffuse qu'une petite quantité de trafic :apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION-A percent: PERCENT-A - revisionName: REVISION-B percent: PERCENT-B - revisionName: REVISION-C percent: PERCENT-C
Notez que la somme des pourcentages doit être égale à 100. Remplacez
- REVISION-A, REVISION-B, REVISION-C par les révisions auxquelles vous attribuez le trafic ;
- PERCENT-A, PERCENT-B, PERCENT-C par le pourcentage respectivement attribué à chaque révision.
Remplacez la configuration du service en utilisant la commande suivante :
gcloud beta run services replace service.yaml
Envoyer l'ensemble du trafic vers la dernière révision
Lorsque vous déployez une nouvelle révision, vous pouvez faire en sorte que celle-ci et toutes les révisions ultérieures diffusent 100 % du trafic dès que possible, ignorant ainsi toute répartition de trafic établie :
Console
Accédez à Cloud Run for Anthos dans la console Google Cloud :
Localisez le service dans la liste des services, puis cliquez dessus.
Cliquez sur Déployer une nouvelle révision.
Remplissez le formulaire de déploiement selon vos besoins, en veillant à cocher la case intitulée Diffuser immédiatement la révision. Cette opération permet d'ignorer toute répartition du trafic existante, la nouvelle révision diffusant 100 % du trafic.
Cliquez sur Déployer.
Ligne de commande
Pour envoyer l'ensemble du trafic vers la dernière révision déployée :
gcloud run services update-traffic SERVICE --to-latest
Remplacez SERVICE par le nom du service.
YAML
Vous pouvez télécharger la configuration d'un service existant dans un fichier YAML avec la commande gcloud run services describe
à l'aide de l'option --format=export
.
Vous pouvez ensuite modifier ce fichier YAML et déployer ces modifications à l'aide de la commande gcloud beta run services replace
.
Veillez à ne modifier que les attributs spécifiés.
Téléchargez la configuration de votre service dans un fichier nommé
service.yaml
sur l'espace de travail local :gcloud run services describe SERVICE --format export > service.yaml
Remplacez SERVICE par le nom de votre service Cloud Run pour Anthos.
Dans votre fichier local, mettez à jour l'attribut
traffic
situé sousspec
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - latestRevision: true percent: 100
Remplacez la configuration du service en utilisant la commande suivante :
gcloud beta run services replace service.yaml
Utiliser des tags pour les tests, la migration du trafic et les rollbacks
Après avoir déployé un service, vous pouvez créer une révision et lui attribuer un tag permettant d'y accéder via une URL spécifique, sans diffuser le trafic. Vous pouvez ensuite utiliser ce tag pour migrer progressivement le trafic vers la révision taguée et effectuer le rollback de cette révision.
Cette fonctionnalité est souvent utilisée pour tester et vérifier une nouvelle révision de service avant qu'elle diffuse du trafic, selon l'ordre suivant :
- Exécution des tests d'intégration sur un conteneur pendant le développement
- Déploiement du conteneur dans un projet Google Cloud que vous n'utilisez qu'à des fins de préproduction, sans diffuser de trafic, et tests sur une révision taguée
- Déploiement en production, sans diffuser de trafic, et tests sur une révision taguée en production
- Migration du trafic vers la révision taguée
Déployer une nouvelle révision taguée
Pour déployer une nouvelle révision d'un service existant en production, procédez comme suit :
gcloud run deploy myservice --image IMAGE_URL --no-traffic --tag TAG_NAME
Remplacer
- IMAGE_URL par l'URL de votre image ;
- TAG_NAME par le nom de votre tag en minuscules.
Le tag vous permet de tester directement la nouvelle révision sur une URL spécifique, sans diffuser le trafic. L'URL commence par le nom du tag que vous avez fourni. Par exemple, si vous avez utilisé le nom de tag green
sur le service myservice
, vous devez tester la révision taguée sur l'URL https://green---myservice-abcdef.a.run.app
.
Migrer le trafic vers une révision taguée
Après avoir vérifié que la nouvelle révision fonctionne correctement, vous pouvez commencer à migrer le trafic vers celle-ci à l'aide de la console Google Cloud, de la ligne de commande gcloud ou d'un fichier YAML :
Console
Accédez à Cloud Run for Anthos dans la console Google Cloud :
Localisez le service dans la liste des services, puis cliquez dessus :
Sélectionnez la révision taguée à laquelle vous souhaitez envoyer du trafic :
Cliquez sur Gérer le trafic.
Recherchez le nom de la révision taguée. Elle est répertoriée, mais avec un pourcentage défini sur 0 : elle ne diffuse actuellement pas de trafic. Dans le formulaire Gérer le trafic* :
- Définissez le pourcentage souhaité pour cette révision, par exemple 5. Notez que le pourcentage de la version actuellement diffusée est automatiquement réduit de cette même valeur.
- Cliquez sur Enregistrer.
- Pendant plusieurs heures, ou plusieurs jours si cela est nécessaire, répétez les étapes de gestion du trafic en augmentant graduellement le pourcentage attribué à la révision taguée. Vous n'avez pas besoin d'effectuer un redéploiement pour modifier les pourcentages de trafic.
Ligne de commande
Pour migrer le trafic vers un tag de révision spécifique, procédez comme suit :
gcloud run deploy update-traffic myservice --to-tags TAG_NAME=TRAFFIC_PERCENT
Remplacer
- TAG_NAME par le nom du tag vers lequel vous migrez le trafic ;
- TRAFFIC_PERCENT par le pourcentage de trafic que vous souhaitez diffuser via la révision taguée (par exemple,
1
).
YAML
Vous pouvez télécharger la configuration d'un service existant dans un fichier YAML avec la commande gcloud run services describe
à l'aide de l'option --format=export
.
Vous pouvez ensuite modifier ce fichier YAML et déployer ces modifications à l'aide de la commande gcloud beta run services replace
.
Veillez à ne modifier que les attributs spécifiés.
Téléchargez la configuration de votre service dans un fichier nommé
service.yaml
sur l'espace de travail local :gcloud run services describe SERVICE --format export > service.yaml
Remplacez SERVICE par le nom de votre service Cloud Run pour Anthos.
Apportez toutes les modifications souhaitées à la configuration du service, comme décrit dans les différentes pages de configuration.
Sous l'attribut
spec
, localisez et mettez à jour l'attributtraffic
de la révision taguée afin qu'elle ne diffuse qu'une faible quantité de trafic :apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: ... traffic: - revisionName: REVISION tag: TAG_NAME percent: PERCENT-NEW - revisionName: REVISION-FORMER percent: PERCENT-FORMER
Notez que la somme des pourcentages doit être égale à 100. Remplacez
- REVISION par le nom de la révision taguée ;
- TAG_NAME par le nom du tag que vous déployez progressivement ;
- PERCENT-NEW par le pourcentage de trafic que vous souhaitez envoyer à la révision taguée (par exemple, utilisez
10
pour envoyer 10 % du trafic vers cette révision) ; - REVISION-FORMER par le nom de la révision assurant actuellement la diffusion ;
- PERCENT-FORMER par le pourcentage de trafic que vous souhaitez envoyer à l'ancienne révision.
Remplacez la configuration du service en utilisant la commande suivante :
gcloud beta run services replace service.yaml