Gateway


Cette page décrit la mise en œuvre de Google Kubernetes Engine (GKE) de l'API Kubernetes Gateway à l'aide du contrôleur de passerelle GKE. Pour déployer des passerelles dans GKE, consultez la section Déployer des passerelles ou Déployer des passerelles multiclusters.

L'API Gateway est une norme Open Source pour la mise en réseau de services. L'API Gateway fait évoluer la ressource Ingress et l'améliore des manières suivantes :

  • Basée sur les rôles : Gateway est composée de ressources d'API qui correspondent aux rôles organisationnels de l'opérateur de cluster, du développeur et du fournisseur d'infrastructures. Cela permet aux opérateurs de cluster de définir comment l'infrastructure partagée peut être utilisée par de nombreuses équipes de développeurs différentes et non coordonnées.

  • Portable : l'API Gateway est un standard Open Source avec de nombreuses mises en œuvre. Elle est conçue à l'aide du concept de conformité flexible, qui promeut une API principale hautement portable (comme Ingress) qui présente néanmoins la flexibilité et l'extensibilité nécessaires pour offrir des fonctionnalités natives de l'environnement et de la mise en œuvre. Cela permet de garantir la cohérence des concepts et des ressources principales entre les mises en œuvre et les environnements, ce qui réduit la complexité et améliore la connaissance des utilisateurs.

  • Expressive : les ressources de l'API Gateway fournissent des fonctionnalités intégrées pour la correspondance basée sur l'en-tête, la pondération du trafic et d'autres fonctionnalités qui ne sont possibles que dans Ingress via des annotations personnalisées.

Ressources de l'API Gateway

L'API Gateway est un modèle de ressource basé sur les rôles, conçu pour les personas qui interagissent avec la mise en réseau Kubernetes. Comme le montre le schéma suivant, ce modèle permet à différents propriétaires de services non coordonnés de partager la même infrastructure réseau sous-jacente en toute sécurité, de manière à centraliser les règles et les contrôles pour l'administrateur de la plate-forme.

GKE fournit des classes Gateway. Les opérateurs de cluster créent des ressources Gateway basées sur ces classes. Les développeurs d'applications créent des ressources HTTPRoute qui se lient à des ressources Gateway.

L'API Gateway contient les types de ressources suivants :

  • GatewayClass : définit une ressource à l'échelle d'un cluster, qui est un modèle permettant de créer des équilibreurs de charge dans un cluster. GKE fournit des ressources GatewayClasses utilisables dans les clusters GKE.
  • Gateway : définit où et comment les équilibreurs de charge écoutent le trafic. Les opérateurs de cluster créent des ressources Gateway dans leurs clusters en fonction d'une ressource GatewayClass. GKE crée des équilibreurs de charge qui mettent en œuvre la configuration définie dans la ressource Gateway.
  • HTTPRoute : définit des règles spécifiques au protocole pour acheminer les requêtes d'une ressource Gateway vers les services Kubernetes. GKE est compatible avec les ressources HTTPRoute pour le routage du trafic basé sur HTTP(S). Les développeurs d'applications créent des ressources HTTPRoute pour exposer leurs applications HTTP à l'aide de ressources Gateway.

GatewayClass

GatewayClass est une ressource qui définit un modèle pour les équilibreurs de charge TCP/UDP (niveau 4) et HTTP(S) (niveau 7) dans un cluster Kubernetes. GKE fournit des ressources GatewayClass comme ressources à l'échelle d'un cluster. Les opérateurs de cluster spécifient une ressource GatewayClass lors de la création de ressources Gateway dans leurs clusters.

Les différentes ressources GatewayClass correspondent à différents équilibreurs de charge Google Cloud. Lorsque vous créez une ressource Gateway basée sur une ressource GatewayClass, un équilibreur de charge correspondant est créé pour mettre en œuvre la configuration spécifiée. Certaines ressources GatewayClass sont compatibles avec l'équilibrage de charge multicluster.

Le tableau suivant répertorie les ressources GatewayClass disponibles dans les clusters GKE et leur type d'équilibreur de charge sous-jacent. Pour en savoir plus sur les ressources GatewayClass, consultez la page Fonctionnalités et spécifications de la ressource GatewayClass.

Nom de la classe Description
gke-l7-rilb Équilibreurs de charge HTTP(S) internes régionaux basés sur l'équilibrage de charge HTTP(S) interne
gke-l7-gxlb Équilibreurs de charge HTTP(S) externes globaux basés sur l'équilibrage de charge HTTP(S) externe
gke-l7-rilb-mc Équilibreurs de charge régionaux multiclusters basés sur l'équilibrage de charge HTTP(S) interne
gke-l7-gxlb-mc Équilibreurs de charge globaux multiclusters basés sur l'équilibrage de charge HTTP(S) externe

Chaque ressource GatewayClass est soumise aux limites de l'équilibreur de charge sous-jacent.

Gateway

Les opérateurs de cluster créent des ressources Gateway pour définir où et comment les équilibreurs de charge écoutent le trafic. Les ressources Gateway tiennent leur comportement (c'est-à-dire leur mise en œuvre) de leur ressource GatewayClass associée.

La spécification de la ressource Gateway inclut la ressource GatewayClass de la ressource Gateway, les ports et les protocoles d'écoute, ainsi que les routes pouvant être associées à la ressource Gateway. Une ressource Gateway sélectionne des routes en fonction de leurs métadonnées, en particulier le genre, l'espace de noms et les libellés des ressources de route.

Pour obtenir un exemple de déploiement d'une ressource Gateway, consultez la section Déployer des ressources Gateway. Pour obtenir un exemple de déploiement d'une ressource Gateway multicluster, consultez la section Déployer des ressources Gateway multiclusters.

HTTPRoute

Une ressource HTTPRoute définit la manière dont les requêtes HTTP et HTTPS reçues par une ressource Gateway sont dirigées vers les services. Les développeurs d'applications créent des ressources HTTPRoute pour exposer leurs applications via des ressources Gateway.

Une ressource HTTPRoute définit les ressources Gateway à partir desquelles elle peut acheminer le trafic, les services vers lesquels il doit être acheminé et les règles qui définissent le trafic correspondant à la ressource HTTPRoute. La liaison de passerelle et de route est bidirectionnelle, ce qui signifie que les deux ressources doivent se sélectionner pour qu'elles soient liées. Les ressources HTTPRoute peuvent correspondre à des requêtes en fonction des détails de l'en-tête de la requête.

Une route peut être liée à une ou plusieurs ressources Gateway, et une ressource Gateway peut être liée à plusieurs routes.

Contrôleur GKE Gateway

Le contrôleur GKE Gateway est la mise en œuvre par Google de l'API Gateway pour Cloud Load Balancing. Tout comme le contrôleur GKE Ingress, le contrôleur Gateway surveille une API Kubernetes pour identifier les ressources de l'API Gateway et effectue un rapprochement des ressources Cloud Load Balancing pour mettre en œuvre le comportement de réseau spécifié par les ressources Gateway.

Il existe deux versions du contrôleur GKE Gateway :

  • Cluster unique : gère les passerelles à cluster unique pour un seul cluster GKE.
  • Multicluster : gère les passerelles multiclusters pour un ou plusieurs clusters GKE.

Les deux contrôleurs Gateway sont des contrôleurs hébergés par Google qui surveillent l'API Kubernetes pour identifier les clusters GKE. Contrairement au contrôleur GKE Ingress, les contrôleurs Gateway ne sont pas hébergés sur des plans de contrôle GKE ou dans le projet de l'utilisateur, ce qui leur permet d'être plus évolutifs et plus robustes.

Les contrôleurs Gateway eux-mêmes ne constituent pas un plan de données de mise en réseau et ne traitent aucun trafic. Ils sont isolés du trafic et gèrent divers plans de données qui traitent le trafic. Le schéma suivant illustre l'architecture des contrôleurs GKE Gateway à cluster unique et multiclusters. Le contrôleur sous-jacent utilisé dépend de la GatewayClass de la passerelle déployée.

Les contrôleurs Gateway à cluster unique et multiclusters déploient et gèrent des équilibreurs de charge pour GKE, mais ne traitent pas le trafic réseau proprement dit.

Écran de contrôle tactile Contrôleur Gateway à cluster unique Contrôleur Gateway multiclusters
Gérée par Google Google
Capacité en nombre de clusters Ressources Gateway à cluster unique Ressources Gateway multiclusters
Emplacement du déploiement Déploiement régional dans la même région que son cluster GKE. Déploiement global dans plusieurs régions Google Cloud.
Comment l'activer Activation par défaut dans GKE. Activation via l'API d'entrée multicluster et enregistrement dans une Fleet. Consultez la page Activer des ressources Gateway multiclusters.
Ressources GatewayClass compatibles
  • gke-l7-rilb
  • gke-l7-gxlb
  • gke-l7-rilb-mc
  • gke-l7-gxlb-mc

Vous pouvez utiliser simultanément plusieurs contrôleurs Gateway, y compris des contrôleurs non fournis par Google, dans un cluster GKE. Chaque ressource GatewayClass est compatible avec un seul contrôleur Gateway, ce qui permet d'utiliser simultanément l'équilibrage de charge unique et multicluster.

Comparaison entre les ressources Ingress et Gateway

Les ressources Gateway et Ingress sont toutes deux des standards Open Source permettant d'acheminer le trafic. La ressource Gateway a été conçue par la communauté Kubernetes, en s'appuyant sur les leçons tirées des écosystèmes d'Ingress et de maillage de services. La ressource Gateway est une évolution de la ressource Ingress qui offre la même fonction, fournie en tant que sur-ensemble des fonctionnalités Ingress. Les deux ressources peuvent être utilisés simultanément sans conflit. Toutefois, au fil du temps, les ressources Gateway et Route fourniront davantage de fonctionnalités non disponibles dans Ingress, incitant les utilisateurs à commencer à utiliser Gateway dans des situations où ils auraient pu utiliser Ingress auparavant.

L'API Gateway standard se trouve actuellement à l'étape v1Alpha1, ce qui signifie qu'elle n'est destinée qu'à une utilisation expérimentale et d'évaluation pour le moment. Des modifications destructives de l'API sont planifiées avant la version Bêta de l'API Gateway. De même, le contrôleur GKE Gateway est également en version Bêta, à des fins de tests seulement. Vos commentaires sont essentiels pour l'évolution du contrôleur GKE Gateway et nous aideront à atteindre la disponibilité générale. N'hésitez pas à nous contacter à l'adresse gke-gateway-feedback@google.com si vous avez des commentaires ou des questions. Nous espérons recevoir votre message bientôt.

Tarifs

Toutes les ressources Compute Engine déployées via le contrôleur Gateway sont débitées sur le projet dans lequel résident vos clusters GKE. Le contrôleur Gateway à cluster unique est offert sans frais supplémentaires dans le cadre des tarifs de GKE Standard et Autopilot. Vous pouvez utiliser le contrôleur Gateway multiclusters sans frais supplémentaires pendant la version bêta. Pour en savoir plus sur la tarification du contrôleur Gateway multiclusters GKE, consultez la page Activer les passerelles multiclusters.

Étape suivante