Si une modification de configuration apportée à une ressource Istio entraîne des problèmes dans votre maillage de services, restaurez la ressource vers une version stable directement depuis la console ASM. Service Mesh (ASM) conserve automatiquement l'historique des versions chaque fois que la section spec d'une ressource Istio est mise à jour, en gardant jusqu'à cinq versions récentes par ressource.
La procédure suivante utilise un VirtualService comme exemple. Les mêmes étapes s'appliquent à tous les types de ressources Istio : virtual services, destination rules, Istio gateways, service entries, Envoy filters, workload groups, workload entries, sidecar resources, request authentication policies, peer authentication policies et authorization policies.
Fonctionnement du suivi des versions
ASM enregistre un instantané de la section spec avant chaque mise à jour.
| Comportement | Détails |
|---|---|
| Déclencheur | Seules les modifications apportées aux champs de la section spec génèrent une nouvelle entrée de version. Les mises à jour d'autres champs n'en créent pas. |
| Limite de stockage | ASM conserve jusqu'à cinq versions par ressource. Lors de la sixième mise à jour, la version la plus ancienne est supprimée. |
| Méthode de mise à jour | Les versions sont enregistrées quelle que soit la méthode utilisée pour mettre à jour la ressource, et pas uniquement via la console ASM. |
| Champs redondants | Les champs contenant des valeurs par défaut peuvent être omis des versions stockées. Par exemple, si servers.tls dans la section spec d'une gateway est défini sur la valeur par défaut PASSTHROUGH, ASM le considère comme redondant et ne l'inclut pas dans l'instantané de version. Cela n'affecte pas le comportement de restauration. |
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance ASM exécutant la version 1.9.7.92 ou ultérieure. Pour plus d'informations, consultez Créer une instance ASM ou Mettre à jour une instance ASM
Un virtual service créé. Pour plus d'informations, consultez Gérer les virtual services
Étape 1 : Activer le contrôle de version pour les ressources Istio
Le contrôle de version doit être activé avant qu'ASM ne commence à suivre les versions des ressources. Activez-le lors de la création de l'instance ou sur une instance existante.
Pour une nouvelle instance ASM : Sélectionnez Enable Istio custom resource version control dans l'assistant de création.
Pour une instance ASM existante :
Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez ASM Instance > Base Information.
Sur la page Base Information, cliquez sur Settings. Dans le panneau Settings Update, sélectionnez Enable Istio custom resource version control et cliquez sur OK.
Étape 2 : Mettre à jour le virtual service pour générer une version
Une fois le contrôle de version activé, chaque mise à jour de la section spec crée une nouvelle entrée de version.
ASM n'enregistre les versions que lorsque les champs spec changent. Les mises à jour d'autres champs de la ressource Istio ne génèrent pas d'entrées de version.
Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez Traffic Management Center > VirtualService.
Sur la page VirtualService, recherchez le virtual service cible et cliquez sur YAML dans la colonne Actions.
Dans la boîte de dialogue Edit, modifiez un champ de la section
spec. Par exemple, remplacez la valeur du champnumber9080par9081, puis cliquez sur OK.
ASM enregistre la configuration précédant la mise à jour en tant que nouvelle entrée de version (par exemple, v2).
Étape 3 : Revenir à une version précédente
Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez Traffic Management Center > VirtualService.
Sur la page VirtualService, recherchez le virtual service cible et cliquez sur Version dans la colonne Actions.
Dans la boîte de dialogue Version, recherchez la version à restaurer (par exemple, v2) et cliquez sur View dans la colonne Actions pour inspecter la section
specstockée. Confirmez qu'il s'agit de la version correcte, puis cliquez sur Rollback.
Vérifier la restauration
Une fois la restauration terminée, confirmez que la configuration de la ressource correspond à la version attendue :
Sur la page VirtualService, recherchez le même virtual service et cliquez sur YAML dans la colonne Actions.
Dans la boîte de dialogue Edit, vérifiez que la section
specreflète la version restaurée.
FAQ
Le bouton Version n'apparaît pas pour ma ressource Istio
Deux conditions doivent être remplies : la version de l'instance ASM doit être 1.9.7.92 ou ultérieure, et l'option Enable Istio custom resource version control doit être activée. Vérifiez ces deux points dans ASM Instance > Base Information > Settings.
Les versions sont-elles enregistrées pour les mises à jour effectuées en dehors de la console ASM ?
Oui. Une fois le contrôle de version activé, ASM suit les modifications de la section spec quelles que soient les méthodes utilisées pour mettre à jour les ressources Istio.
Combien de versions ASM conserve-t-il ?
ASM stocke jusqu'à cinq versions par ressource Istio. Lors de la sixième mise à jour d'une ressource, la version stockée la plus ancienne est automatiquement supprimée.
Pourquoi la version stockée diffère-t-elle du YAML complet dans la console ?
Les versions stockées omettent les champs contenant des valeurs par défaut. Par exemple, si servers.tls dans une gateway Istio est défini sur la valeur par défaut PASSTHROUGH, ASM ne l'inclut pas dans l'instantané de version. Ce comportement est normal et n'affecte pas les résultats de la restauration.