Lorsque vous utilisez Service Mesh (ASM) pour gérer plusieurs clusters, vous pouvez déployer les charges de travail d'un service sur l'ensemble de ces clusters. Par défaut, ASM répartit la charge du trafic vers ce service sur tous les clusters. Pour maintenir le trafic au sein du cluster d'origine, utilisez la fonctionnalité de maintien du trafic intra-cluster. Cette rubrique s'appuie sur l'application Bookinfo pour illustrer l'activation de cette fonctionnalité dans un environnement multi-cluster.
Prérequis
Deux clusters ACK sont créés dans le même VPC. Dans cette rubrique, les clusters sont nommés m1c1 et m1c2. Pour plus d'informations, consultez Créer un cluster ACK dédié (obsolète).
Une instance ASM de version 1.15.3.101 ou ultérieure est créée. Dans cette rubrique, l'instance est nommée mesh1. Pour plus d'informations, consultez Créer une instance ASM.
Préparatifs
Étape 1 : Configurer la connectivité inter-clusters
(Facultatif) Renommer les groupes de sécurité
Renommez les groupes de sécurité des deux clusters pour faciliter leur identification. Dans cet exemple, les Security Group Name sont définis sur m1c1-sg et m1c2-sg.
Ajouter une règle de groupe de sécurité
Ajoutez des règles de groupe de sécurité permettant aux clusters de communiquer entre eux. Dans les paramètres du groupe de sécurité m1c1-sg, ajoutez une règle autorisant l'accès depuis m1c2-sg. De même, pour le groupe de sécurité m1c2-sg, ajoutez une règle autorisant l'accès depuis m1c1-sg. Pour plus d'informations, consultez Ajouter une règle de groupe de sécurité .
Ajoutez une règle dans la direction inbound : définissez Authorization Policy sur Allow, Protocol Type sur All, Port Range sur -1/-1, Authorization Type sur Security Group Access et Priority sur 1.
Étape 2 : Ajouter les clusters et déployer une passerelle d'entrée
Après avoir ajouté les deux clusters à l'instance ASM, ceux-ci disposent d'un accès mutuel. Vous n'avez donc besoin de déployer une passerelle d'entrée que pour l'un d'entre eux.
Ajoutez les deux clusters à l'instance ASM. Pour plus d'informations, consultez Ajouter un cluster à une instance ASM .
Déployez une passerelle d'entrée pour le cluster m1c1. Pour plus d'informations, consultez Créer une passerelle d'entrée .
Étape 3 : Déployer Bookinfo dans chaque cluster
Pour vérifier la fonctionnalité de maintien du trafic intra-cluster, cette rubrique utilise deux versions légèrement différentes de l'application Bookinfo. La seule différence réside dans la version du service Reviews : m1c1 exécute la version v1 et m1c2 la version v2.
-
Utilisez le fichier YAML suivant pour déployer l'application Bookinfo avec le déploiement Reviews v1 dans le cluster m1c1. Pour plus d'informations, consultez Déployer une application dans un cluster associé à une instance ASM .
Le déploiement v1 du service Reviews n'affiche pas les évaluations par étoiles dans la section des avis sur les livres.
-
Utilisez le fichier YAML suivant pour déployer l'application Bookinfo avec le déploiement Reviews v2 dans le cluster m1c2.
Le déploiement v2 du service Reviews affiche les évaluations sous forme d'étoiles noires dans la section des avis sur les livres.
Étape 4 : Créer une passerelle, un service virtuel et une règle de destination
-
Utilisez le fichier YAML suivant pour créer une passerelle dans le namespace par défaut de l'instance ASM. Pour plus d'informations, consultez Gérer les passerelles .
-
Utilisez le fichier YAML suivant pour créer un service virtuel dans le namespace par défaut de l'instance ASM. Pour plus d'informations, consultez Gérer les services virtuels .
-
Utilisez le fichier YAML suivant pour créer une règle de destination dans le namespace par défaut de l'instance ASM. Pour plus d'informations, consultez Gérer les règles de destination .
-
Dans votre navigateur, accédez à http://{adresse IP de la passerelle d'entrée}/productpage1 ou http://{adresse IP de la passerelle d'entrée}/productpage2, puis actualisez la page.
Pour trouver l'adresse IP de la passerelle d'entrée, consultez Créer une passerelle d'entrée .
Si des évaluations par étoiles apparaissent alternativement dans la section des avis sur les livres, le déploiement de l'application Bookinfo a réussi. La page affiche la section productpage de l'application BookInfo Sample, qui contient des informations sur le livre The Comedy of Errors. La section Book Reviews située à droite affiche les avis de Reviewer1 (5 étoiles) et de Reviewer2 (4 étoiles).
Procédure
Les étapes suivantes décrivent comment activer la fonctionnalité de maintien du trafic intra-cluster pour un service spécifique, en l'occurrence le service Reviews. Pour savoir comment activer cette fonctionnalité globalement ou au niveau du namespace, consultez Opérations connexes .
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 .
Sur la page Base Information , dans la section Config Info , cliquez sur Keep traffic in cluster situé à droite de edit .
Dans la boîte de dialogue Configure services that keep traffic in cluster , activez l'interrupteur Enable Keep traffic in cluster , sélectionnez Select Service , puis cliquez sur Select services .
Dans la boîte de dialogue Add services , sélectionnez Service , choisissez Namespace dans la liste déroulante Namespace , sélectionnez Select services dans la section Select a service , cliquez sur l'icône
, puis cliquez sur OK .-
Une fois la configuration terminée, cliquez sur Configure services that keep traffic in cluster dans la boîte de dialogue OK .
Dans la section Config Info , le statut Configured s'affiche à droite de Keep traffic in cluster , ce qui indique que la fonctionnalité Keep traffic in cluster est activée.
-
Vérifiez que la fonctionnalité de maintien du trafic intra-cluster fonctionne correctement.
-
Dans votre navigateur, accédez à http://{adresse IP de la passerelle d'entrée}/productpage1, puis actualisez la page.
La section des avis sur les livres n'affiche systématiquement aucune évaluation, ce qui confirme que la fonctionnalité de maintien du trafic intra-cluster fonctionne comme prévu.
-
Dans votre navigateur, accédez à http://{adresse IP de la passerelle d'entrée}/productpage2, puis actualisez la page.
La section des avis sur les livres affiche systématiquement des avis accompagnés d'évaluations par étoiles noires. La page affiche correctement les détails du livre The Comedy of Errors ainsi que le contenu des avis dans la section Book Reviews , ce qui confirme que le trafic est correctement acheminé vers le service local du cluster m1c2.
-
Analyse des résultats
Le schéma suivant illustre le flux de trafic dans le maillage avant et après l'activation de la fonctionnalité de maintien du trafic intra-cluster.
|
État |
Description |
|
Désactivé |
Dans l'application Bookinfo, le service Productpage appelle le service Reviews pour obtenir les avis sur les livres. Lorsque vous accédez à http://{adresse IP de la passerelle d'entrée}/productpage1 dans un navigateur, vous accédez au service Productpage du cluster m1c1. Lorsque vous accédez à http://{adresse IP de la passerelle d'entrée}/productpage2, vous accédez au service Productpage du cluster m1c2. Des charges de travail pour le service Reviews existent à la fois dans les clusters m1c1 et m1c2. Par défaut, Service Mesh répartit la charge des requêtes adressées au service Reviews sur les deux clusters, même lorsque le trafic provient d'un service au sein de l'un de ces clusters (par exemple, depuis le service Productpage dans m1c1). Par conséquent, vous observez l'apparition et la disparition alternées des évaluations par étoiles dans la section des avis sur les livres. |
|
Activé |
Lorsque vous accédez au service Productpage dans un cluster spécifique, tel que m1c1, Service Mesh ne répartit plus la charge des requêtes entre les clusters. Il achemine plutôt toutes les requêtes vers le service Reviews local. Par conséquent, la section des avis sur les livres n'affiche systématiquement aucune évaluation par étoiles. Important
Une fois cette fonctionnalité activée, si le service reviews-v1 du cluster m1c1 tombe en panne, le service Productpage ne peut pas basculer vers le service reviews-v2 du cluster m1c2. |
Si vous activez la fonctionnalité de maintien du trafic intra-cluster pour un service, les appelants ne peuvent accéder qu'aux points de terminaison du service situés dans le même cluster. Même si les points de terminaison intra-cluster sont indisponibles, le maillage ne transférera pas le trafic vers ses points de terminaison situés dans d'autres clusters.
Pour maintenir le trafic intra-cluster pour un service tout en activant le basculement, vous pouvez utiliser des règles de trafic afin de créer des voies de trafic et d'activer le transfert de trafic. Pour plus d'informations, consultez Utiliser des règles de trafic pour configurer des voies de trafic et le transfert de trafic .
Opérations connexes
Activer le trafic intra-cluster global
Sur la page Base Information , dans la section Config Info , cliquez sur Keep traffic in cluster situé à droite de edit .
-
Dans la boîte de dialogue Configure services that keep traffic in cluster , activez l'interrupteur Enable Keep traffic in cluster , sélectionnez All Services , puis cliquez sur OK .
Une fois cette option activée, Service Mesh maintient tout le trafic au sein de son cluster d'origine.
Activer le trafic intra-cluster pour un namespace
Sur la page Base Information , dans la section Config Info , cliquez sur Keep traffic in cluster situé à droite de edit .
Dans la boîte de dialogue Configure services that keep traffic in cluster , activez l'interrupteur Enable Keep traffic in cluster , sélectionnez Select Service , puis cliquez sur Select services .
Dans la boîte de dialogue Add services , sélectionnez Namespace , choisissez le namespace cible dans la section Select services , cliquez sur l'icône
, puis cliquez sur OK .-
Dans la boîte de dialogue Configure services that keep traffic in cluster , cliquez sur OK .
Une fois cette option activée, Service Mesh maintient le trafic vers les services du namespace cible au sein du cluster d'origine.