GKE-Service-Mesh von Cloud Service Mesh – Übersicht

Diese Konfiguration wird für Vorschaukunden unterstützt, wir raten jedoch davon ab, für neue Cloud Service Mesh-Nutzer. Weitere Informationen finden Sie in der Cloud Service Mesh – Übersicht

Dieses Dokument richtet sich an Nutzer von Google Kubernetes Engine, die eine Cloud Service Mesh-Service-Mesh mit der Kubernetes Gateway API

Sie können Cloud Service Mesh für GKE mithilfe der Kubernetes Gateway APIs für die Dienst-zu-Dienst-Kommunikation, Traffic Verwaltung, globales Load-Balancing und Durchsetzung von Sicherheitsrichtlinien für Dienste Mesh-Anwendungsfälle.

Kubernetes APIs und Google Cloud APIs

Sie können ein Cloud Service Mesh-Service-Mesh mit zwei verschiedenen APIs konfigurieren:

Dieses Dokument und die zugehörigen Einrichtungsleitfäden enthalten Anweisungen zur Verwendung des Kubernetes Gateway API zum Konfigurieren eines Service Mesh von Cloud Service Mesh.

Wir empfehlen, die Kubernetes Gateway APIs zu verwenden. in Google Kubernetes Engine ausführen. Wir raten davon ab, beide APIs zur Konfiguration des Routings zu verwenden. im selben Service Mesh in GKE.

Die Dienst-Routing-API verwendet dieselben Ressourcennamen wie die Ressourcen in den Kubernetes Gateway APIs, was die Verwendung der beiden APIs vereinfacht. Kubernetes Die von Ihnen konfigurierten Ressourcen entsprechen funktional der Google Cloud Ressourcen, die durch die Service Routing API für Cloud Service Mesh dargestellt werden.

In den folgenden Abschnitten werden die Ressourcen und die Architektur beschrieben, die vom Einbindung von Cloud Service Mesh in die Kubernetes Gateway APIs

Gateway API

Die Gateway API ist eine Sammlung von Ressourcen, die das Dienstnetzwerk in Kubernetes modellieren. Kubernetes Gateway-API ist ein Open-Source-Projekt, das sich auf die Unterstützung von Ingress und Load Balancer konzentriert. durch die Bereitstellung einer generischen Routing-API. Die generische Routing-API hat viele Implementierungen. Benutzerdefinierte Cloud Service Mesh-Ressourcendefinitionen (CRDs) wurden hinzugefügt als Erweiterung der Open-Source-Gateway API. Die CRDs unterstützen Service-Mesh-Anwendungsfälle und verwenden dieselbe generische Routing-API, die von der Gateway API eingeführt wird.

Die Gateway API ist hierarchisch organisiert, mit einer übergeordneten Gateway-Ressource und einer zugehörigen GatewayClass, an die Sie Routen anhängen. GKE enthält eine TDMesh-Ressource, die ein Peer der Gateway-Ressource ist. Sie können dieselben Route-Typen an die TDMesh-Ressource anhängen. In der TDMesh-Ressource hängen Sie Routen und Richtlinien für Service Meshes an.

Gateway API, Gateway-Ressource, Mesh-Ressource und Routen
Gateway API, Gateway-Ressource, Mesh-Ressource und Routen (zum Vergrößern klicken)

Flotte

Eine Flotte besteht aus einem oder mehreren GKE-Clustern, die logisch gruppiert sind. Eine Flotte können Sie Funktionen verwalten und Richtlinien einheitlich auf mehrere Cluster. Wenn Sie eine Flotte verwenden, können Sie ein Cloud Service Mesh-Service Mesh verwalten die sich über mehrere Cluster erstrecken.

Architektur

Cloud Service Mesh unterstützt die Gateway API in GKE durch Programmierung Ihrer Cluster Datenebenen zum Implementieren von Netzwerkverhalten Gateway API-Ressourcen angegeben sind. Das Cloud Service Mesh selbst ist ein von Google verwaltetes Steuerungsebene, die keinen Traffic auf der Datenebene verarbeitet. Envoy-Proxys, die als Sidecars für Ihre Arbeitslasten ausgeführt werden, oder proxylose gRPC-Clients verarbeiten den Traffic auf der Datenebene. Cloud Service Mesh konfiguriert sowohl Envoy-Proxys als auch proxylose gRPC-Clients über die xDSv3 API.

Cloud Service Mesh bietet eine verwaltete, global verfügbare Lösung für die Steuerungsebene die robuster und skalierbarer ist als die Ausführung clusterinterner Controller. Weil eine globale Lösung ist, kann Cloud Service Mesh den Traffic über Load-Balancing verteilen Arbeitslasten, die auf mehrere GKE-Cluster verteilt sind. Im Grafik: Cloud Service Mesh verwaltet Traffic zu Diensten in drei Cluster in einer einzelnen Flotte, die Gateway API-Ressourcen verwenden.

<ph type="x-smartling-placeholder">
</ph> Ein Multi-Cluster-Service Mesh von Cloud Service Mesh, das mit der Gateway API konfiguriert wurde
Ein Multi-Cluster-Service Mesh von Cloud Service Mesh, das mit der Gateway API konfiguriert wurde (zum Vergrößern klicken)

Sie legen einen Cluster in Ihrer Flotte als Konfigurationscluster fest. Im Konfigurationscluster werden Ressourcen der Gateway API gespeichert. Cloud-Service-Mesh Überwacht nur Ressourcen im Konfigurationscluster und ignoriert Ressourcen die sich in anderen Clustern der Flotte befinden. Ausführliche Informationen zum Konfigurationscluster finden Sie in der GKE-Dokumentation unter Konfigurationsclusterdesign.

Mit GKE Multi-Cluster-Dienste, Gateway API-Ressourcen im Konfigurationscluster können auf Kubernetes-Dienste in Flotte für jeden Cluster. Weitere Informationen finden Sie unter Multi-Cluster-Dienste finden Sie weitere Informationen zur Multi-Cluster-Diensterkennung.

Ressourcen

Cloud Service Mesh unterstützt in den Daten sowohl Envoy-Proxys als auch proxylose gRPC-Dienste die Ebene eines Service Mesh. Beide Clients empfangen die Konfiguration von Cloud Service Mesh für ein bestimmtes Service Mesh zu erstellen, indem Sie den Namen und entsprechende Projektnummer der Ressource TDMesh im jeweiligen Bootstrap Konfiguration. Die Einrichtungsanleitungen für Cloud Service Mesh mit den Kubernetes Gateway APIs bieten Demonstrationskonfigurationen für Datenebenen mit Envoy und proxylosen gRPC-Anwendungen.

TDMesh-Ressource

Die TDMesh-Ressource ist eine benutzerdefinierte Cloud Service Mesh-Ressource. Es ist eine Erweiterung der Open-Source- Gateway APIs zur Unterstützung der Service Mesh-Anwendungsfälle von Cloud Service Mesh Mit der TDMesh-Ressource erstellen Sie eine Service-Mesh-Instanz in Ihrer Flotte. Routen, die mit der TDMesh-Ressource verbunden sind, geben Dienst-zu-Dienst-Routingverhalten im Service Mesh an.

Route Ressourcen

Eine Teilmenge der Gateway API-Route Ressourcen können an eine TDMesh-Ressource angehängt werden, um das Dienst-Level-Routing anzugeben innerhalb des Service Mesh. Cloud Service Mesh unterstützt die folgenden Route Ressourcen:

  • HTTPRoute
  • TCPRoute
  • TDGRPCRoute (benutzerdefinierte Cloud Service Mesh-Ressource)

Sie können beispielsweise eine HTTPRoute erstellen, um anzugeben, dass für den Host payments.svc.internal bestimte HTTP-Anfragen an den Kubernetes-Dienst service-payments weitergeleitet werden. Wenn Sie die HTTPRoute-Ressource an eine TDMesh-Ressource anhängen, die von Datenebeneninstanzen abonniert wird, werden HTTP-Anfragen, die von Arbeitslasten innerhalb des Mesh-Netzwerks gesendet werden, entsprechend weitergeleitet.

Dieser Release erweitert die generischen Route-Ressourcen in der Gateway API um den neuen Routentyp TDGRPCRoute. Der neue Routentyp bietet eine erstklassige Erfahrung für das Routing von gRPC-Anfragen durch Abgleich mit nativen gRPC-Primitiven wie Methoden- und Dienstdefinitionen.

<ph type="x-smartling-placeholder">
</ph> Gateway API-Ressourcen in GKE zum Konfigurieren von Cloud Service Mesh verwenden
Gateway API-Ressourcen in GKE zum Konfigurieren von Cloud Service Mesh verwenden (zum Vergrößern klicken)

Beschränkungen

  • Cloud Service Mesh konfiguriert die folgenden Standardverhaltensweisen für alle Kubernetes-Dienste im Service Mesh. Dieses Verhalten kann nicht geändert werden.
    • TCP-Systemdiagnosen werden an Dienstports konfiguriert, auf die von Route-Ressourcen der Gateway API verwiesen wird.
    • Eine Standardeinstellung von 30 Sekunden Zeitüberschreitung für alle eingehenden Anfragen an Dienste konfiguriert ist.
    • Sitzungsaffinität deaktiviert ist.
  • Die Envoy Auto Injector unterstützt nur ein Mesh-Netzwerk pro Flotte.
  • Die Sicherheitsfunktionen von Cloud Service Mesh können nicht mit der Gateway API
  • Sie dürfen die TDMesh- und Route-Ressourcen in GKE nur mit der Gateway API konfigurieren. Sie können nicht die Google Cloud Console, die gcloud CLI oder die REST APIs verwenden.
  • Alle Cluster müssen sich in einem einzigen Projekt befinden. Ein Service Mesh, das sich über Cluster in mehreren Projekten erstreckt, wird nicht unterstützt.
  • Sie können ein GKE-Service-Mesh nicht mit der Google Cloud Console konfigurieren oder aufrufen.
  • Die Beobachtbarkeit der Steuerungsebene mit Cloud Logging und Cloud Monitoring wird nicht unterstützt.

Nächste Schritte