À 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, consultez Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise. Google Cloud

Présentation

Les passerelles multiclusters sont configurées à 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 charge globale requise Google Cloud . 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 Google Cloud's infrastructure d'équilibrage de charge globale pour fournir un point d'entrée unique et unifié à vos applications. Cette approche présente les avantages suivants :

  • Gestion simplifiée
  • Fiabilité améliorée
  • 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 correspondance basée sur les en-têtes afin de tester les modifications avec un faible pourcentage de trafic ou de 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 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 des passerelles multiclusters

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 la configuration de votre passerelle multicluster. Vous ne déployez toutes les ressources d'API de passerelle 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 à haute disponibilité. 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étecter et accéder aux services Kubernetes sur plusieurs clusters GKE au sein 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 au sein d'un parc.

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

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

  2. Associer des HTTPRoute à la passerelle : les ressources HTTPRoute définissent comment le trafic HTTP/S entrant est routé vers des services de backend spécifiques. Les HTTPRoute sont associés 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, à son tour, configure dynamiquement l'infrastructure d'équilibrage de charge nécessaire Google Cloud . 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 fournit 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 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, route 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 directement acheminé vers le pod optimal du cluster sélectionné.

Étape suivante