Service Mesh (ASM) vous permet de déployer des services applicatifs dans plusieurs clusters Kubernetes au sein d'un même réseau privé virtuel (VPC) et de configurer une passerelle ingress sans serveur comme proxy du trafic entrant de ces clusters. Cette approche améliore la disponibilité globale des services et réduit les coûts liés aux ressources de calcul.
Prérequis
-
Deux clusters Container Service for Kubernetes (ACK), nommés m1c1 et m1c2 dans cet exemple, sont créés dans le même VPC. Pour plus d'informations, consultez les pages Créer un cluster ACK dédié (obsolète) ou Créer un cluster ACK managé.
RemarqueLors de la création d'un cluster, nous vous recommandons de configurer des groupes de sécurité avancés.
Une instance ASM de version v1.18.0.139 ou ultérieure est créée. L'instance mesh1 est utilisée dans cet exemple. Pour savoir comment créer une instance ASM, reportez-vous à la section Créer une instance ASM.
Étape 1 : Vérifier que les deux clusters peuvent communiquer entre eux
Par défaut, deux clusters situés dans le même VPC peuvent communiquer entre eux s'ils sont associés à des groupes de sécurité avancés. Si l'un des clusters utilise un groupe de sécurité de base ou si les deux groupes de sécurité ne peuvent pas communiquer, configurez des règles de groupe de sécurité pour les clusters. Pour plus de détails, consultez la rubrique Gérer les règles de groupe de sécurité.
Étape 2 : Ajouter les clusters à l'instance ASM et créer une passerelle ingress sans serveur
Après avoir ajouté les deux clusters à l'instance ASM, créez une passerelle ingress sans serveur.
Ajoutez les deux clusters à l'instance ASM. Pour plus d'informations, consultez la page Ajouter un cluster à une instance ASM.
-
Créez une passerelle ingress sans serveur à l'aide du fichier YAML suivant. Pour plus d'informations, consultez la page Créer une passerelle ingress.
Étape 3 : Déployer l'application Bookinfo
ASM permet de déployer une application sur plusieurs clusters. Vous pouvez répartir les microservices de l'application Bookinfo entre les deux clusters.
-
Créez les ressources configurées dans le fichier bookinfo-m1c2.yaml au sein du cluster m1c2 à l'aide du contenu suivant :
RemarqueLa version v3 du microservice reviews affiche les notes sous forme d'étoiles rouges.
-
Exécutez la commande suivante pour déployer l'application Bookinfo (sans la version v3 du microservice reviews) dans le cluster m1c2 :
kubectl apply -f bookinfo-m1c2.yaml -
Créez les ressources configurées dans le fichier bookinfo-m1c1.yaml au sein du cluster m1c1 à l'aide du contenu suivant :
-
Exécutez la commande suivante pour déployer la version v3 du microservice reviews ainsi que le microservice ratings dans le cluster m1c1 :
kubectl apply -f bookinfo-m1c1.yaml
Étape 4 : Ajouter un service virtuel et une passerelle Istio
-
Créez un service virtuel nommé bookinfo dans l'espace de noms par défaut de l'instance ASM. Pour plus d'informations, consultez la page Gérer les services virtuels.
-
Créez une passerelle Istio nommée bookinfo-gateway dans l'espace de noms par défaut de l'instance ASM. Pour plus d'informations, consultez la page Gérer les passerelles Istio.
-
Dans la barre d'adresse de votre navigateur, saisissez
http://{IP address of the serverless ingress gateway}/productpageet actualisez la page plusieurs fois.Vous constatez que la répartition des requêtes vers les trois versions du microservice reviews est proche de 1:1:1. La version v3 du microservice reviews fonctionne correctement bien qu'elle ne soit pas déployée dans le même cluster que les autres microservices.
(Facultatif) Étape 5 : Router systématiquement les requêtes vers la version v3 du microservice reviews
Définissez une règle de destination et un service virtuel pour établir une politique de déploiement des microservices de l'application Bookinfo. L'exemple ci-dessous configure le routage systématique des requêtes vers la version v3 du microservice reviews.
-
Créez une règle de destination nommée reviews dans l'espace de noms par défaut de l'instance ASM. Pour plus d'informations, consultez la page Gérer les services virtuels.
-
Créez un service virtuel nommé reviews dans l'espace de noms par défaut de l'instance ASM. Pour plus d'informations, consultez la page Gérer les services virtuels.
-
Dans la barre d'adresse de votre navigateur, saisissez
http://{IP address of the serverless ingress gateway}/productpageet actualisez la page plusieurs fois.Vous observez que les requêtes sont toujours acheminées vers la version v3 du microservice reviews. Dans ce cas, les notes s'affichent sous forme d'étoiles rouges.
