Ce document décrit le fonctionnement des passerelles multiclusters dans Google Kubernetes Engine (GKE). Les passerelles multiclusters sont une solution réseau puissante qui vous permet de gérer le trafic des services déployés sur plusieurs clusters GKE.
Ce document s'adresse aux architectes cloud et aux spécialistes de la mise en réseau qui conçoivent et implémentent le réseau de leur organisation. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud , consultez Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.
Présentation
La passerelle multicluster est configurée à l'aide des ressources de l'API Kubernetes Gateway. Le contrôleur GKE Gateway surveille ces ressources (Gateway, HTTPRoute) et provisionne et gère automatiquement l'infrastructure d'équilibrage de chargeGoogle Cloud requise. Cette infrastructure fournit une gestion avancée du trafic pour les services déployés sur plusieurs clusters GKE au sein d'un parc. Les passerelles multiclusters utilisent l'infrastructure d'équilibrage de charge globale de Google Cloudpour fournir un point d'entrée unique et unifié pour vos applications. Cette approche présente les avantages suivants :
- Simplifie la gestion
- Améliore la fiabilité
- Permet de bénéficier de fonctionnalités avancées de gestion du trafic
Capacités de gestion du trafic
Les passerelles multiclusters vous offrent des fonctionnalités avancées pour gérer le trafic sur plusieurs clusters. Vous pouvez implémenter des stratégies de routage sophistiquées, telles que des déploiements par phases et des stratégies bleu-vert, pour déployer les modifications en toute sécurité. Pour un contrôle précis, vous pouvez utiliser la correspondance basée sur les en-têtes pour tester les modifications avec un petit pourcentage de trafic ou répartir le trafic par pondération afin de transférer progressivement les requêtes entre différents backends de cluster.
Les passerelles multiclusters vous permettent également de mettre en miroir le trafic, ce qui envoie une copie des requêtes utilisateur en direct à un nouveau service pour tester les performances sans impacter les utilisateurs. Pour garantir la fiabilité et éviter les surcharges, les passerelles multiclusters sont compatibles avec le basculement basé sur l'état de santé et l'équilibrage de charge basé sur la capacité, qui distribue les requêtes en fonction de la capacité définie de vos services.
Fonctionnement de la passerelle multicluster
Tous les clusters GKE participant à une configuration de passerelle multicluster doivent être enregistrés dans un parc. Un parc fournit un regroupement logique de clusters, ce qui permet une gestion et une communication cohérentes entre les clusters. Un cluster GKE du parc est désigné comme cluster de configuration.
Le cluster de configuration sert de point de contrôle centralisé pour la configuration de votre passerelle multicluster. Vous ne déployez toutes les ressources de l'API Gateway multicluster, telles que Gateway et HTTPRoute, que sur ce cluster désigné.
Le contrôleur GKE Gateway surveille le serveur d'API Kubernetes du cluster de configuration pour ces ressources.
Pour choisir un cluster de configuration, envisagez un cluster régional ou un autre cluster GKE à disponibilité élevée. Cela permet de s'assurer que les mises à jour de vos ressources d'API Gateway peuvent être réconciliées en continu par le contrôleur.
Le contrôleur de passerelle multicluster utilise les services multiclusters (MCS) pour découvrir les services Kubernetes et y accéder sur plusieurs clusters GKE d'un parc. MCS est une fonctionnalité GKE qui permet la détection de services et la connectivité entre les services qui s'exécutent dans différents clusters GKE d'un parc.
MCG utilise MCS pour découvrir quels services sont disponibles dans quels clusters afin d'acheminer le trafic externe vers les services. Le contrôleur MCG utilise des ressources d'API MCS pour regrouper des pods dans un seul service adressable et couvrant plusieurs clusters.
En fonction des configurations que vous avez définies dans les ressources de l'API Gateway, le contrôleur GKE Gateway fournit un équilibreur de charge d'application externe ou un équilibreur de charge d'application interne. Cet équilibreur de charge sert de frontend pour votre application et distribue le trafic directement aux pods opérationnels de votre parc, quel que soit leur emplacement.
Les étapes générales suivantes décrivent le processus de déploiement d'une passerelle multicluster :
Définissez une passerelle : dans une configuration de passerelle multicluster, vous créez une ressource Gateway qui définit le point d'entrée de votre trafic dans le cluster de configuration. La ressource Gateway spécifie une GatewayClass, qui est un modèle pour un type particulier d'équilibreur de charge, tel qu'un équilibreur de charge d'application externe global ou un équilibreur de charge d'application interne régional. Dans GKE, les GatewayClass suivantes déploient des passerelles multiclusters :
gke-l7-global-external-managed-mc: provisionne un équilibreur de charge d'application externe global.gke-l7-regional-external-managed-mc: provisionne un équilibreur de charge d'application externe régional.gke-l7-cross-regional-internal-managed-mc: provisionne un équilibreur de charge d'application interne.gke-l7-rilb-mc: provisionne un équilibreur de charge d'application interne.gke-l7-gxlb-mc: provisionne un équilibreur de charge d'application classique.
La passerelle définit également la façon dont l'équilibreur de charge écoute le trafic entrant en spécifiant les écouteurs réseau (ports et protocoles) à exposer. Pour en savoir plus sur les classes Gateway compatibles avec GKE, consultez Services multiclusters.
Associez des ressources HTTPRoute à la passerelle : les ressources HTTPRoute définissent la manière dont le trafic HTTP/S entrant est acheminé vers des services de backend spécifiques. Les ressources HTTPRoute sont associées aux ressources Gateway et spécifient des règles basées sur les noms d'hôte, les chemins d'accès, les en-têtes, etc. HTTPRoute est également compatible avec des fonctionnalités avancées de gestion du trafic, telles que la répartition du trafic et la mise en miroir du trafic.
Créer un équilibreur de charge : lorsque vous déployez des ressources Gateway et HTTPRoute, le contrôleur GKE Gateway interprète ces objets d'API et configure à son tour de manière dynamique l'infrastructure d'équilibrage de charge Google Cloud nécessaire. L'équilibreur de charge dirige ensuite le trafic vers les pods appropriés, quel que soit le cluster dans lequel ils se trouvent. Ce processus offre un moyen très efficace et évolutif de router le trafic.
Flux du trafic
Le schéma suivant illustre le fonctionnement d'une passerelle multicluster en tant qu'équilibreur de charge centralisé pour les applications qui s'exécutent sur deux clusters GKE dans différentes régions :
Le comportement de l'équilibreur de charge est configuré en fonction des règles définies dans vos ressources HTTPRoute. Lorsque le trafic utilisateur arrive à l'adresse IP de l'équilibreur de charge Google Cloud provisionné (tel que défini par votre ressource Gateway), l'équilibreur de charge, qui est un proxy géré par Google, achemine le trafic. Ce proxy (un proxy Google Front End ou un proxy régional) dirige le trafic vers le point de terminaison du service de backend approprié dans le cluster GKE correct, en fonction des critères suivants :
- Vérifications d'état
- Règles de répartition du trafic
- Capacité
Le trafic est acheminé directement vers le pod optimal dans le cluster sélectionné.
Étapes suivantes
- Découvrez comment activer les passerelles multiclusters.
- Lisez une présentation sur le fonctionnement des passerelles dans GKE.