À propos des passerelles multiclusters

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 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 mondial de Google Cloudpour fournir un point d'entrée unique et unifié pour vos applications. Cette approche présente les avantages suivants :

  • Simplifier la gestion
  • Amélioration de 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 progressifs 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 afin de tester les modifications avec un petit pourcentage de trafic, ou répartir le trafic par pondération pour 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 affecter 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 qui participent à une configuration de passerelle multicluster doivent être enregistrés dans un parc. Un parc permet de regrouper logiquement des 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 GKE hautement disponible, tel qu'un cluster régional. Cela garantit que les mises à jour de vos ressources de l'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 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 exécutés dans différents clusters GKE d'un parc.

MCG utilise MCS pour découvrir les services disponibles dans les clusters afin d'acheminer le trafic externe vers les services. Le contrôleur MCG utilise des ressources d'API MCS pour regrouper les pods dans un service unique 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 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 :

  1. 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.
    • 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.

  2. 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 HTTPRoutes 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 les fonctionnalités avancées de gestion du trafic, telles que la répartition et la mise en miroir du trafic.

  3. 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 bons pods, quel que soit le cluster auquel ils appartiennent. 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 :

Architecture de la passerelle multicluster dans GKE.
Figure  : Architecture de la passerelle multicluster

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 (proxy Google Front End ou 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 directement acheminé vers le pod optimal du cluster sélectionné.

Étapes suivantes