Ce document décrit le fonctionnement des passerelles multiclusters dans Google Kubernetes Engine (GKE). Les passerelles multiclusters sont une solution de mise en 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 TLSRoute), puis 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 d'un parc. Les passerelles multiclusters utilisent l'infrastructure d'équilibrage de charge 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 d'utiliser des 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 mettre en œuvre des stratégies de routage sophistiquées, telles que des déploiements progressifs et des stratégies bleu-vert, pour déployer des modifications en toute sécurité. Pour un contrôle précis, vous pouvez utiliser la mise en correspondance basée sur les en-têtes pour tester les modifications avec un faible pourcentage de trafic, ou répartir le trafic par pondération pour déplacer 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 affecter les utilisateurs. Pour garantir la fiabilité et éviter les surcharges, les passerelles multiclusters sont compatibles avec le basculement basé sur l'état et l'équilibrage de charge basé sur la capacité, qui répartit les requêtes en fonction de la capacité définie de vos services.
Pour le trafic TLS qui nécessite un chiffrement de bout en bout sans terminaison TLS au niveau de l'équilibreur de charge, les passerelles multiclusters sont compatibles avec le routage basé sur SNI avec TLSRoute.
Fonctionnement de la passerelle multicluster
Tous les clusters GKE qui participent à 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 votre configuration de passerelle multicluster. Vous ne déployez toutes les ressources de l'API Gateway multicluster, telles que Gateway, HTTPRoute et TLSRoute, 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 hautement disponible. Cela permet de s'assurer que les mises à jour de vos ressources d'API Gateway peuvent être rapprochées en continu par le contrôleur.
Le contrôleur de passerelle multicluster utilise des services multiclusters (MCS) pour découvrir et accéder aux services Kubernetes 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 de passerelle GKE fournit un équilibreur de charge d'application externe ou interne (pour HTTPRoute) ou un équilibreur de charge réseau proxy (pour TLSRoute). Cet équilibreur de charge sert d'interface 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éfinir 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 GatewayClasses 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 ou un équilibreur de charge réseau proxy externe régional.gke-l7-cross-regional-internal-managed-mc: provisionne un équilibreur de charge d'application interne interrégional ou un équilibreur de charge réseau proxy interne interrégional.gke-l7-rilb-mc: provisionne un équilibreur de charge d'application interne régional ou un équilibreur de charge réseau proxy interne régional.gke-l7-gxlb-mc: provisionne un équilibreur de charge d'application classique.
La ressource Gateway définit également la manière 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 de passerelle compatibles avec GKE, consultez Services multiclusters.
Associez des ressources de routage à la ressource Gateway : les ressources de routage définissent la manière dont l'équilibreur de charge achemine le trafic entrant vers des services de backend spécifiques :
- HTTPRoute : définit la manière dont l'équilibreur de charge achemine le trafic HTTP et HTTPS en fonction des noms d'hôte, des chemins d'accès, des en-têtes et des paramètres de requête. Compatible avec la répartition du trafic, la redirection des requêtes et la mise en miroir du trafic.
- TLSRoute : définit la manière dont l'équilibreur de charge achemine le trafic TLS chiffré en fonction du nom d'hôte SNI à l'aide du passthrough TLS (compatible avec les GatewayClasses
gke-l7-regional-external-managed-mc,gke-l7-rilb-mcetgke-l7-cross-regional-internal-managed-mc). L'équilibreur de charge transfère le trafic directement aux ServiceImports de backend sans déchiffrer la charge utile au niveau de la passerelle.
Créer un équilibreur de charge : lorsque vous déployez des ressources Gateway et Route, le contrôleur GKE Gateway interprète ces objets d'API et configure 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 d'acheminer 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 ou TLSRoute. 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 approprié, 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 déployer une passerelle multicluster externe.
- Découvrez comment déployer une passerelle multicluster interne.
- Découvrez comment déployer une passerelle de transfert TLS.
- Découvrez comment activer les passerelles multiclusters.
- Découvrez le fonctionnement des passerelles dans GKE.