Présentation du maillage de services GKE Cloud Service Mesh

Cette configuration est disponible pour les clients de la version preview, mais nous ne vous recommandons pas pour les nouveaux utilisateurs de Cloud Service Mesh. Pour en savoir plus, consultez les Présentation de Cloud Service Mesh

Ce document s'adresse aux utilisateurs de Google Kubernetes Engine qui souhaitent déployer Maillage de services Cloud Service Mesh à l'aide de l'API Kubernetes Gateway.

Vous pouvez configurer Cloud Service Mesh pour GKE à l'aide du les API Kubernetes Gateway, permettant les communications de service à service, le trafic équilibrage de charge global et application de règles de sécurité pour le service les cas d'utilisation d'un réseau maillé.

API Kubernetes et API Google Cloud

Vous pouvez configurer un maillage de services Cloud Service Mesh à l'aide de deux API différentes:

Ce document et les guides de configuration associés fournissent des instructions sur l'utilisation de l'API Kubernetes Gateway pour configurer Maillage de services Cloud Service Mesh.

Nous vous recommandons d'utiliser les API Kubernetes Gateway sur Google Kubernetes Engine. Il est donc déconseillé d'utiliser les deux API pour configurer le routage dans le même maillage de services sur GKE.

L'API de routage de services utilise les mêmes noms de ressources que les ressources des API Kubernetes Gateway, ce qui vous facilite la tâche lorsque vous utilisez les deux API. L'API Kubernetes que les ressources que vous configurez sont équivalentes sur Google Cloud fonctionnel aux ressources représentées par l'API de routage de services pour Cloud Service Mesh.

Les sections suivantes décrivent les ressources et l'architecture utilisées par le Intégration de Cloud Service Mesh aux API Kubernetes Gateway

API Gateway

L'API Gateway est un ensemble de ressources modélisant la mise en réseau de services dans Kubernetes. L'API Kubernetes API Gateway est un projet Open Source axé sur la prise en charge des équilibreurs d'entrée et de charge en fournissant une API de routage générique. L'API de routage générique dispose de nombreuses implémentations. Ajout de définitions de ressources personnalisées (CRD) Cloud Service Mesh en tant qu'extension de l'API Gateway Open Source. Les CRD acceptent les cas d'utilisation du maillage de services et utilisent la même API de routage générique que celle introduite par l'API Gateway.

L'API Gateway est organisée de manière hiérarchique, avec une ressource parente Gateway et une classe GatewayClass associée, à laquelle vous associez des routes. GKE inclut une ressource TDMesh qui est un pair de la ressource Gateway. Vous pouvez associer les mêmes types Route à la ressource TDMesh. La ressource TDMesh vous permet d'associer des routes et des règles aux maillages de services.

API Gateway, ressource Gateway, ressource Mesh et routes
API Gateway, ressource Gateway, ressource Mesh et routes (cliquez pour agrandir)

Parc

Un parc est constitué d'un ou de plusieurs clusters GKE regroupés de manière logique. Un parc vous permet de gérer les fonctionnalités et d'appliquer des règles de manière cohérente clusters. Lorsque vous utilisez un parc, vous pouvez gérer un maillage de services Cloud Service Mesh couvrant plusieurs clusters.

Architecture

Cloud Service Mesh est compatible avec l'API Gateway sur GKE en programmer vos clusters pour implémenter les comportements de mise en réseau spécifié dans les ressources de l'API Gateway. Cloud Service Mesh est un service géré par Google plan de contrôle qui ne traite aucun trafic du plan de données. Les proxys Envoy s'exécutant en tant que side-cars vers vos charges de travail ou les clients gRPC sans proxy traitent le trafic dans le plan de données. Cloud Service Mesh configure à la fois les proxys Envoy et les proxys sans proxy via l'API xDSv3.

Cloud Service Mesh offre une solution de plan de contrôle gérée et disponible dans le monde entier plus robuste et plus évolutif que l'exécution de contrôleurs dans le cluster. En effet, est une solution mondiale, Cloud Service Mesh peut équilibrer la charge du trafic charges de travail réparties sur plusieurs clusters GKE. Dans l'illustration suivante : Cloud Service Mesh gère le trafic vers les services dans trois instances les clusters d'un seul parc à l'aide des ressources de l'API Gateway.

Maillage de services multicluster Cloud Service Mesh configuré à l'aide de l'API Gateway
Un maillage de services multicluster Cloud Service Mesh configuré à l'aide de l'API Gateway (cliquez pour agrandir)

Vous désignez un cluster de votre parc en tant que cluster de configuration. Le cluster de configuration est l'emplacement de stockage des ressources de l'API Gateway. Cloud Service Mesh surveille uniquement les ressources qui se trouvent dans le cluster de configuration et ignore les ressources qui se trouvent dans d'autres clusters du parc. Pour en savoir plus sur le cluster de configuration, consultez la section Conception du cluster de configuration dans la documentation GKE.

Avec GKE services multicluster, Les ressources API Gateway du cluster de configuration peuvent référencer des services Kubernetes dans n'importe quel cluster d'un parc. Voir Services multicluster pour en savoir plus sur la détection de services multiclusters.

Ressources

Cloud Service Mesh est compatible avec les proxys Envoy et avec gRPC sans proxy dans les données d'un maillage de services. Les deux clients reçoivent la configuration Cloud Service Mesh pour un maillage de services particulier, en spécifiant le nom et numéro de projet correspondant de la ressource TDMesh dans son bootstrap respectif configuration. Les guides de configuration de Cloud Service Mesh avec les API Kubernetes Gateway fournissent des configurations de plan de données de démonstration avec Envoy et gRPC sans proxy.

Ressource TDMesh

La Ressource TDMesh est une ressource personnalisée Cloud Service Mesh. Il s'agit d'une extension de l'Open Source API de passerelle pour prendre en charge les cas d'utilisation du maillage de services de Cloud Service Mesh À l'aide de la ressource TDMesh, vous créez une instance de maillage de services dans votre parc. Les routes associées à la ressource TDMesh spécifient les comportements de routage de service à service dans le maillage de services.

Ressources Route

Un sous-ensemble des Route de l'API Gateway les ressources peuvent être associées à une ressource TDMesh pour spécifier le routage au niveau du service au sein du maillage de services. Cloud Service Mesh est compatible avec les Route suivants : ressources:

  • HTTPRoute
  • TCPRoute
  • TDGRPCRoute (ressource personnalisée Cloud Service Mesh)

Par exemple, vous pouvez créer un objet HTTPRoute pour spécifier que les requêtes HTTP destinées à l'hôte payments.svc.internal sont acheminées vers le service Kubernetes service-payments. Lorsque vous associez la ressource HTTPRoute à une ressource TDMesh à laquelle les instances de plan de données sont abonnées, les requêtes HTTP envoyées par les charges de travail au sein du maillage sont acheminées en conséquence.

Cette version étend les ressources génériques Route dans l'API Gateway avec un nouveau type de route, TDGRPCRoute. Le nouveau type de route offre une expérience de première classe pour le routage des requêtes gRPC, en fonction des primitives gRPC natives, telles que les définitions de méthodes et de services.

Utiliser les ressources de l'API Gateway dans GKE pour configurer Cloud Service Mesh
Utiliser les ressources de l'API Gateway dans GKE pour configurer Cloud Service Mesh (cliquez pour agrandir)

Limites

  • Cloud Service Mesh configure les comportements par défaut suivants pour tous Services Kubernetes dans le maillage de services Vous ne pouvez pas modifier ces comportements.
    • Les vérifications d'état TCP sont configurées sur les ports de service référencés par les ressources Route de l'API Gateway.
    • Une durée d'enregistrement par défaut de 30 secondes délai avant expiration est configuré pour toutes les requêtes entrantes vers les services.
    • Affinité de session est désactivé.
  • La Injecteur automatique Envoy n'accepte qu'un seul réseau maillé par parc.
  • Les fonctionnalités de sécurité de Cloud Service Mesh ne peuvent pas être activées à l'aide du API Gateway.
  • Vous devez configurer les ressources TDMesh et Route sur GKE à l'aide de l'API Gateway uniquement. Vous ne pouvez pas utiliser la console Google Cloud, gcloud CLI ou les API REST.
  • Tous les clusters doivent appartenir à un même projet. Il n'est pas possible de créer un maillage de services couvrant plusieurs clusters dans plusieurs projets.
  • Vous ne pouvez pas configurer ou afficher un maillage de services GKE à l'aide de la console Google Cloud.
  • L'observabilité du plan de contrôle avec Cloud Logging et Cloud Monitoring n'est pas possible.

Étape suivante