Lorsque vous exécutez plusieurs versions d'un service dans une instance Service Mesh (ASM), vous devez contrôler avec précision la destination des requêtes. Les services virtuels résolvent ce problème en définissant des règles de routage qui mettent en correspondance les requêtes -- selon les en-têtes, les chemins URI ou le poids du trafic -- et les acheminent vers des versions spécifiques du service (sous-ensembles). Les règles sont évaluées de haut en bas et la première correspondance s'applique.
Utilisez les services virtuels pour :
Acheminer le trafic vers des versions spécifiques d'un service (par exemple, envoyer toutes les requêtes des utilisateurs de test vers v2).
Répartir le trafic entre les versions par pondération (par exemple, diriger 10 % du trafic vers un déploiement canari).
Mettre en correspondance les requêtes par en-tête, URI ou autres attributs et les router vers différents backends.
Les services virtuels fonctionnent conjointement avec les règles de destination. Un service virtuel achemine le trafic vers une destination, tandis qu'une règle de destination configure ce qui se produit au niveau de cette destination (équilibrage de charge, pools de connexions, définitions de sous-ensembles). Si votre service virtuel fait référence à un sous-ensemble, la DestinationRule correspondante doit définir ce sous-ensemble. Pour la référence complète des champs VirtualService, consultez Virtual Service dans la documentation Istio.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance ASM. Pour plus d'informations, consultez Créer une instance ASM
Des services déployés sur un cluster ajouté à l'instance ASM
Créer un service virtuel
Connectez-vous à la console ASM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM.
Dans le volet de navigation de gauche, sélectionnez .
-
Créez un service virtuel en utilisant l'une des méthodes suivantes :
Formulaire de la console : Cliquez sur Create. Configurez les paramètres sur la page de création, puis cliquez sur Create.
Éditeur YAML : Cliquez sur Create from YAML. Sélectionnez un namespace dans la liste déroulante Namespace et choisissez un modèle dans la liste déroulante Template. Modifiez la configuration YAML dans l'éditeur de code, puis cliquez sur Create.
Modifier un service virtuel
Une fois le service virtuel créé, localisez-le sur la page VirtualService et utilisez la colonne Actions pour modifier les paramètres :
Modifier la configuration YAML : Cliquez sur YAML. Dans la boîte de dialogue Edit, modifiez la configuration et cliquez sur OK.
Revenir à une version précédente : Cliquez sur Version. Dans la boîte de dialogue Version, ajustez les configurations si nécessaire et cliquez sur Rollback.
Supprimer un service virtuel
Sur la page VirtualService, localisez le service virtuel et cliquez sur Delete dans la colonne Actions.
Dans le message de confirmation Submit, cliquez sur OK.
La suppression d'un service virtuel entraîne la disparition de ses règles de routage, ce qui affecte l'acheminement des requêtes et la répartition du trafic entre les versions de service. Cela peut provoquer un comportement inattendu. Avant de supprimer le service, vérifiez qu'aucun trafic actif ne dépend des règles de routage définies dans le service virtuel.
Rubriques connexes
Créez des règles de destination pour définir des sous-ensembles et configurer des politiques d'équilibrage de charge pour vos services. Pour plus d'informations, consultez Gérer les règles de destination.
Configurez des passerelles pour gérer le trafic entrant dans votre mesh. Pour plus d'informations, consultez Gérer les passerelles.