Alibaba Cloud Service Mesh (ASM) achemine le trafic entrant via une unique passerelle d'entrée sans serveur vers des services applicatifs répartis sur plusieurs clusters Kubernetes au sein d'un même Virtual Private Cloud (VPC). Cette architecture améliore la disponibilité des services et réduit les coûts liés aux ressources de calcul.
Prérequis
-
Deux clusters Container Service for Kubernetes (ACK) créés dans le même VPC. Ce tutoriel utilise les clusters nommés
m1c1etm1c2. Pour plus d'informations, consultez Créer un cluster ACK dédié (obsolète) ou Créer un cluster ACK managé.RemarqueLors de la création d'un cluster, utilisez des groupes de sécurité avancés pour simplifier la communication inter-clusters.
Une instance ASM en version 1.18.0.139 ou ultérieure. Ce tutoriel utilise une instance ASM nommée
mesh1. Pour plus d'informations, consultez Créer une instance ASM.
Étape 1 : Vérifier la communication inter-clusters
Par défaut, deux clusters situés dans le même VPC communiquent entre eux s'ils utilisent tous deux des groupes de sécurité avancés. Si l'un des clusters utilise un groupe de sécurité basique, ou si les deux groupes de sécurité ne peuvent pas communiquer, configurez les règles de groupe de sécurité pour autoriser le trafic entre eux. Pour plus d'informations, consultez Gérer les règles de groupe de sécurité.
Étape 2 : Ajouter les clusters à l'instance ASM et créer une passerelle d'entrée sans serveur
Ajoutez les deux clusters à l'instance ASM, puis créez une passerelle d'entrée sans serveur.
Ajoutez les deux clusters à l'instance ASM. Pour plus d'informations, consultez Ajouter un cluster à une instance ASM.
-
Créez une passerelle d'entrée sans serveur avec la configuration YAML suivante. Pour plus d'informations, consultez Créer une passerelle d'entrée.
Étape 3 : Déployer l'application Bookinfo sur plusieurs clusters
Déployez les microservices Bookinfo sur les deux clusters. Le cluster m1c2 exécute la plupart des services (details, ratings, reviews v1/v2 et productpage), tandis que le cluster m1c1 exécute la version v3 du microservice reviews et le service ratings.
-
Enregistrez le contenu suivant dans un fichier nommé
bookinfo-m1c2.yaml.RemarqueLa version v3 du microservice
reviewsaffiche les notes sous forme d'étoiles rouges. -
Déployez l'application Bookinfo (sans le microservice
reviewsv3) sur le clusterm1c2:kubectl apply -f bookinfo-m1c2.yaml -
Enregistrez le contenu suivant dans un fichier nommé
bookinfo-m1c1.yaml. -
Déployez le microservice
reviewsv3 et le serviceratingssur le clusterm1c1:kubectl apply -f bookinfo-m1c1.yaml
Étape 4 : Ajouter un service virtuel et une passerelle Istio
-
Créez un service virtuel nommé
bookinfodans le namespacedefaultde l'instance ASM. Pour plus d'informations, consultez Gérer les services virtuels. -
Créez une passerelle Istio nommée
bookinfo-gatewaydans le namespacedefaultde l'instance ASM. Pour plus d'informations, consultez Gérer les passerelles Istio. Ouvrez un navigateur et accédez à
http://{IP address of the serverless ingress gateway}/productpage. Actualisez la page plusieurs fois. Le trafic se répartit approximativement selon un ratio 1:1:1 entre les trois versions du microservicereviews(v1, v2 et v3). La version v3 fonctionne normalement bien qu'elle s'exécute dans un cluster différent des autres microservices.
(Facultatif) Étape 5 : Acheminer tout le trafic vers le microservice reviews v3
Définissez une règle de destination et un service virtuel pour acheminer toutes les requêtes vers la version v3 du microservice reviews.
-
Créez une règle de destination nommée
reviewsdans le namespacedefaultde l'instance ASM. Pour plus d'informations, consultez Gérer les règles de destination. -
Créez un service virtuel nommé
reviewsdans le namespacedefaultde l'instance ASM. Pour plus d'informations, consultez Gérer les services virtuels. -
Ouvrez un navigateur et accédez à
http://{IP address of the serverless ingress gateway}/productpage. Actualisez la page plusieurs fois. Toutes les requêtes sont désormais acheminées vers la version v3 du microservicereviews. Les notes apparaissent sous forme d'étoiles rouges.