Équilibrage de charge Cloud Service Mesh
Cloud Service Mesh utilise des proxys side-car ou gRPC sans proxy pour fournir un équilibrage de charge global pour vos microservices internes. Vous pouvez déployer des microservices internes (basés sur un proxy side-car ou gRPC sans proxy) avec des instances situées dans plusieurs régions. Cloud Service Mesh fournit des informations sur l'état, le routage et le backend aux proxys side-car ou à gRPC sans proxy, ce qui leur permet d'effectuer un routage optimal du trafic vers les instances d'application dans plusieurs régions cloud pour un service.
Dans le schéma suivant, le trafic utilisateur entre dans un déploiement Google Cloud via un équilibreur de charge global externe. L'équilibreur de charge externe distribue le trafic vers le microservice Front End dans us-central1
ou asia-southeast1
, en fonction de l'emplacement de l'utilisateur final.
Le déploiement interne comprend trois microservices mondiaux : Front End, Shopping Cart et Payments. Chaque service s'exécute sur des groupes d'instances gérés (MIG) dans deux régions, us-central1
et asia-southeast1
. Cloud Service Mesh utilise un algorithme d'équilibrage de charge global qui dirige le trafic de l'utilisateur situé en Californie vers les microservices déployés dans la région us-central1
. Les requêtes de l'utilisateur à Singapour sont dirigées vers les microservices de asia-southeast1
.
La requête entrante d'un utilisateur est acheminée vers le microservice Front End. Le proxy de service installé sur l'hôte avec Front End dirige ensuite le trafic vers le microservice Shopping Cart. Le proxy de service installé sur l'hôte avec Shopping Cart achemine le trafic vers le microservice Payments. Dans un environnement gRPC sans proxy, votre application gRPC gère le trafic.
Dans l'exemple suivant, si Cloud Service Mesh reçoit les résultats de la vérification de l'état'état indiquant que les instances de machine virtuelle (VM) exécutant le microservice "Shopping Cart" dans us-central1
ne sont pas opérationnelles, Cloud Service Mesh demande au proxy side-car des microservices Front End de basculer le trafic vers le microservice Shopping Cart exécuté dans asia-southeast1
. L'autoscaling étant intégré à la gestion du trafic dans Google Cloud, Cloud Service Mesh avertit le MIG dans asia-southeast1
du trafic supplémentaire, ce qui augmente sa taille.
Cloud Service Mesh détecte que tous les backends du microservice Payments sont opérationnels. Cloud Service Mesh demande donc au proxy Envoy du panier d'achat d'envoyer une partie du trafic (jusqu'à la capacité configurée du client) vers asia-southeast1
et de faire déborder le reste vers us-central1
.
Composants d'équilibrage de charge dans Cloud Service Mesh
Lors de la configuration de Cloud Service Mesh, vous configurez plusieurs composants d'équilibrage de charge:
- Le service de backend, qui contient les valeurs de configuration.
- Une vérification de l'état, qui fournit une vérification de l'état pour les VM et les pods Google Kubernetes Engine (GKE) dans votre déploiement.
- Avec les API de routage de service, une ressource
Mesh
ouGateway
et une ressourceRoute
. - Avec les API d'équilibrage de charge, une règle de transfert globale, qui inclut l'adresse IP virtuelle, un proxy cible et un mappage d'URL
Un proxy side-car compatible avec l'API xDS (tel qu'Envoy) s'exécute sur une instance de VM cliente ou dans un pod Kubernetes. Cloud Service Mesh sert de plan de contrôle et utilise des API xDS pour communiquer directement avec chaque proxy. Dans le plan de données, l'application envoie le trafic à l'adresse IP virtuelle configurée dans la règle de transfert ou la ressource Mesh
. Le proxy side-car ou votre application gRPC intercepte le trafic et le redirige vers le backend approprié.
Le schéma suivant montre une application exécutée sur des VM Compute Engine ou des pods GKE, les composants et le flux de trafic dans un déploiement Cloud Service Mesh. Il présente Cloud Service Mesh et les ressources Cloud Load Balancing permettant de déterminer le routage du trafic. Le schéma illustre les anciennes API d'équilibrage de charge.
Étapes suivantes
- Pour en savoir plus sur la configuration des fonctionnalités avancées d'équilibrage de charge, consultez la page Présentation avancée de l'équilibrage de charge.
- Pour en savoir plus sur la détection de services et l'interception du trafic, consultez la page Découverte de services Cloud Service Mesh.
- Pour en savoir plus sur Cloud Service Mesh avec les API de routage de services, consultez la présentation.