Cloud Service Mesh – Übersicht
Cloud Service Mesh ist ein Service Mesh, das in Google Cloud und auf unterstützten GKE Enterprise-Plattformen verfügbar ist. Er unterstützt Dienste, die auf einer Vielzahl von Computing-Infrastrukturen ausgeführt werden. Cloud Service Mesh wird über APIs gesteuert, die für Google Cloud, Open Source oder beides entwickelt wurden.
Dieses Dokument richtet sich an neue Cloud Service Mesh-Nutzer oder bestehende Anthos Service Mesh- oder Traffic Director-Kunden.
Was ist ein Service Mesh?
Ein Service Mesh ist eine Architektur, die eine verwaltete, beobachtbare und sichere Kommunikation zwischen Ihren Diensten ermöglicht. Damit können Sie robuste Unternehmensanwendungen erstellen, die aus vielen Mikrodiensten in der ausgewählten Infrastruktur bestehen. Service Meshes verwalten die gängigen Anforderungen an die Ausführung eines Dienstes wie Monitoring, Netzwerk und Sicherheit mit einheitlichen, leistungsstarken Tools. So können sich Entwickler und Betreiber von Diensten leichter auf die Erstellung und Verwaltung nützlicher Anwendungen für ihre Nutzer konzentrieren.
Architektonisch besteht ein Service Mesh aus einer oder mehreren Steuerungsebenen und einer Datenebene. Das Service Mesh überwacht den gesamten Traffic in Ihre Dienste und von Ihren Diensten. In Kubernetes wird ein Proxy durch ein Sidecar-Muster für die Mikrodienste im Mesh-Netzwerk bereitgestellt. In der Compute Engine können Sie Proxys auf VMs bereitstellen oder proxylosen gRPC für die Datenebene verwenden.
Dieses Muster entkoppelt die Anwendungs- oder Geschäftslogik von Netzwerkfunktionen und ermöglicht es Entwicklern, sich auf die Funktionen zu konzentrieren, die das Unternehmen benötigt. Mit Service Meshes können Betriebsteams und Entwicklungsteams ihre Arbeit auch entkoppeln.
Die Architektur Ihrer Anwendungen als Mikrodienste bietet viele Vorteile. Bei der Skalierung können Ihre Arbeitslasten jedoch komplex und fragmentiert werden. Service Mesh hilft, das Fragmentierungsproblem zu lösen und die Verwaltung Ihrer Microservices zu vereinfachen.
Was ist Cloud Service Mesh?
Cloud Service Mesh ist die Lösung von Google sowohl für Google Cloud als auch für unterstützte GKE Enterprise-Umgebungen.
- In Google Cloud: Cloud Service Mesh bietet APIs, die spezifisch für die Computing-Infrastruktur sind, auf der Ihre Arbeitslasten ausgeführt werden.
- Für Compute Engine-Arbeitslasten verwendet Cloud Service Mesh Google Cloud-spezifische APIs für das Dienst-Routing.
- Für Google Kubernetes Engine (GKE)-Arbeitslasten verwendet Cloud Service Mesh die Open-Source-Istio APIs.
- Nicht in Google Cloud: Mit Distributed Cloud oder GKE Multicloud unterstützt Cloud Service Mesh die Istio APIs für Kubernetes-Arbeitslasten.
Unabhängig davon, ob Sie Google Cloud verwenden oder nicht, können Sie mit Cloud Service Mesh Ihre Dienste verwalten, beobachten und schützen, ohne Ihren Anwendungscode ändern zu müssen.
Cloud Service Mesh reduziert den Aufwand für Ihre Betriebs- und Entwicklungsteams, indem es die Dienstbereitstellung vereinfacht – von der Traffic-Verwaltung und der Mesh-Netzwerktelemetrie bis hin zur sicheren Kommunikation zwischen Diensten. Mit dem vollständig verwalteten Service Mesh von Google können Sie komplexe Umgebungen verwalten und von all ihren Vorteilen profitieren.
Features
Cloud Service Mesh bietet eine Reihe von Funktionen für die Trafficverwaltung, die Beobachtbarkeit und Telemetrie sowie die Sicherheit.
Trafficverwaltung
Cloud Service Mesh steuert den Traffic-Fluss zwischen Diensten im Mesh, in das Mesh (eingehender Traffic) und in externe Dienste (ausgehender Traffic). Sie konfigurieren und implementieren Ressourcen, um diesen Traffic auf der Anwendungsebene (L7) zu verwalten. Sie haben zum Beispiel folgende Möglichkeiten:
- Verwenden Sie die Diensterkennung.
- Load Balancing zwischen Diensten konfigurieren.
- Canary- und Blau/Grün-Bereitstellungen erstellen.
- Routing für Ihre Dienste genau steuern.
- Schutzschalter einrichten.
Cloud Service Mesh verwaltet eine Liste aller Dienste im Mesh nach Namen und zugehörigen Endpunkten. Diese Liste wird verwaltet, um den Trafficfluss zu steuern (z. B. IP-Adressen von Kubernetes-Pods oder die IP-Adressen von Compute Engine-VMs in einer verwalteten Instanzgruppe). Durch die Verwendung dieser Dienstregistrierung und das Ausführen der Proxys parallel zu den Diensten leitet das Mesh den Traffic an den entsprechenden Endpunkt weiter. Proxylose gRPC-Arbeitslasten können auch parallel zu Arbeitslasten mit Envoy-Proxys verwendet werden.
Informationen zur Sichtbarkeit
Die Cloud Service Mesh-Benutzeroberfläche in der Google Cloud Console bietet Einblicke in Ihr Service Mesh. Diese Messwerte werden automatisch für Arbeitslasten generiert, die über die Istio APIs konfiguriert wurden.
- Dienstmesswerte und Logs für HTTP-Traffic innerhalb des GKE-Clusters des Mesh-Netzwerks werden automatisch in Google Cloud aufgenommen.
- Vorkonfigurierte Dienst-Dashboards liefern Ihnen hilfreiche Informationen zu Ihren Diensten.
- Mithilfe der detaillierten Telemetriedaten von Cloud Monitoring, Cloud Logging und Cloud Trace erhalten Sie detaillierte Informationen zu Dienstmesswerten und Logs. Sie können Ihre Daten nach einer Vielzahl von Attributen filtern und segmentieren.
- Mit Dienst-zu-Dienst-Beziehungen können Sie auf einen Blick die Abhängigkeiten zwischen Diensten und die Verbindungen zu den einzelnen Diensten nachvollziehen.
- Sie können schnell den Kommunikationssicherheitsstatus nicht nur für den Dienst, sondern auch für seine Beziehungen zu anderen Diensten sehen.
- Service Level Objectives (SLOs) geben Ihnen einen Einblick in den Status Ihrer Dienste. Sie können jederzeit neue SLOs und Warnungen für Ihre eigenen Anforderungen in Bezug auf den Dienststatus definieren.
Weitere Informationen zu den Beobachtbarkeitsfunktionen von Cloud Service Mesh finden Sie in unserem Leitfaden zur Beobachtbarkeit.
Sicherheitsvorteile
Cloud Service Mesh bietet viele Sicherheitsvorteile.
- Verminderung des Risikos von Replay- oder Imitationsangriffen, bei denen gestohlene Anmeldedaten verwendet werden. Cloud Service Mesh verwendet mTLS-Zertifikate (Mutual TLS) zur Authentifizierung von Peers anstelle von Inhabertokens wie JSON Web Tokens (JWT).
- Sicherstellen der Verschlüsselung während der Übertragung. Durch die Verwendung von mTLS für die Authentifizierung wird außerdem sichergestellt, dass alle TCP-Kommunikationen bei der Übertragung verschlüsselt werden.
- Das Risiko, dass nicht autorisierte Clients auf einen Dienst mit vertraulichen Daten zugreifen können, wird verringert, unabhängig vom Netzwerkstandort des Clients und den Anmeldedaten auf Anwendungsebene.
- Verminderung des Risikos von Verstößen gegen Nutzerdaten in Ihrem Produktionsnetzwerk. Sie können gewährleisten, dass Insider nur über autorisierte Clients auf vertrauliche Daten zugreifen können.
- Identifikation von Clients, die auf einen Dienst mit vertraulichen Daten zugegriffen haben. Das Zugriffs-Logging von Cloud Service Mesh erfasst zusätzlich zur IP-Adresse die mTLS-Identität des Clients.
- Alle Komponenten der clusterinternen Steuerungsebene werden mit gemäß FIPS 140-2 validierten Verschlüsselungsmodulen erstellt.
Weitere Informationen zu den Sicherheitsvorteilen und -funktionen von Service Mesh finden Sie im Sicherheitsleitfaden.
Optionen der Bereitstellung
In Cloud Service Mesh haben Sie die folgenden Bereitstellungsoptionen:
- In Google Cloud
- Verwaltetes Cloud Service Mesh – verwaltete Steuerungs- und Datenebene für GKE (empfohlen)
- Verwaltetes Cloud Service Mesh – verwaltete Steuerungs- und Datenebene für die Compute Engine mit VMs (empfohlen)
- Clusterinterne Steuerungsebene für GKE mit Istio APIs (nicht empfohlen)
- Nicht in Google Cloud
- Clusterinterne Steuerungsebene für Kubernetes mit Istio APIs
Verwaltetes Cloud Service Mesh
Verwaltetes Cloud Service Mesh besteht aus der verwalteten Steuerungsebene für alle Infrastrukturen und der verwalteten Datenebene für GKE. Bei verwaltetem Cloud Service Mesh organisiert Google Upgrades, Skalierung und Sicherheit für Sie und minimiert so die manuelle Nutzerwartung. Dazu gehören die Steuerungsebene, die Datenebene und zugehörige Ressourcen.
Implementierung der Datenebene
Wenn Sie Google Cloud APIs verwenden, kann Ihre Datenebene von Envoy-Proxys oder von proxylosen gRPC-Anwendungen bereitgestellt werden. Wenn Sie eine vorhandene Anwendung aktualisieren, ermöglicht der Sidecar-basierte Ansatz die Integration in das Mesh, ohne dass Sie Ihre Anwendung ändern müssen. Wenn Sie den Overhead beim Ausführen eines Sidecars vermeiden möchten, können Sie Ihre Anwendung so aktualisieren, dass sie gRPC verwendet.
Sowohl Envoy-Proxys als auch proxylose gRPC-Dienste verwenden die xDS API, um eine Verbindung zur Steuerungsebene herzustellen. Wenn Sie proxylose gRPC-Anwendungen verwenden, haben Sie die Wahl zwischen verschiedenen unterstützten Sprachen für Ihre Anwendungen, darunter Go, C++, Java und Python.
Wenn Sie Open-Source-Istio-APIs verwenden, wird Ihre Datenebene von Envoy-Proxys bereitgestellt.
Implementierung der Steuerungsebene
Die Cloud Service Mesh-Steuerungsebene hängt davon ab, ob Ihre Konfiguration in Google Cloud oder außerhalb von Google Cloud ausgeführt wird und ob Sie ein neuer Kunde sind.
Implementierung der Steuerungsebene für bestehende Nutzer
- Wenn Ihre Konfiguration nicht in Google Cloud ausgeführt wird, verwenden Sie die nicht verwaltete Clustersteuerungsebene von Cloud Service Mesh. Weitere Informationen finden Sie unter In der clusterinternen Steuerungsebene unterstützte Features.
- Wenn Sie bereits Anthos Service Mesh in Google Cloud verwendet haben, verwenden Sie Istio APIs. Weitere Informationen finden Sie unter Unterstützte Features mit Istio APIs (verwaltete Steuerungsebene) .
- Wenn Sie Cloud Service Mesh-Nutzer sind, verwenden Sie die verwaltete Steuerebene von Cloud Service Mesh mit Google Cloud APIs. Weitere Informationen finden Sie unter Von Cloud Service Mesh mit Google Cloud APIs unterstützte Funktionen.
Informationen dazu, wie Sie Ihre aktuelle Steuerungsebene ermitteln, finden Sie unter Steuerungsebenenimplementierung ermitteln. Weitere Informationen zu Steuerungsebenen und zur Migration der Steuerungsebene finden Sie unter Verwaltete Steuerungsebene – Übersicht für Bestandskunden.
Implementierung der Steuerungsebene für neue Nutzer
- Wenn Sie eine Konfiguration außerhalb von Google Cloud planen, wählen Sie die nicht verwaltete Cluster-Steuerungsebene von Cloud Service Mesh aus. Weitere Informationen finden Sie unter In der clusterinternen Steuerungsebene unterstützte Features.
- Wenn Sie eine On-Google Cloud-Konfiguration in Kubernetes planen, wählen Sie Istio APIs aus. Ihre Steuerungsebene verwendet jedoch die Traffic Director-Implementierung, mit Ausnahme bestimmter Fälle, die unter Was bestimmt die Implementierung der Steuerungsebene? beschrieben werden. Weitere Informationen finden Sie unter Unterstützte Features mit Istio APIs (verwaltete Steuerungsebene).
- Wenn Sie eine On-Google Cloud-Konfiguration auf Compute Engine-VMs planen, verwendet Ihre Steuerungsebene die globale, mehrmandantenfähige Steuerungsebene, die als Traffic Director-Implementierung bezeichnet wird. Weitere Informationen finden Sie unter Von Cloud Service Mesh mit Google Cloud APIs unterstützte Funktionen.
Migration der Steuerungsebene
Wenn Sie Anthos Service Mesh weiterhin nutzen und die Istio APIs verwenden, werden Ihre Cluster zur Traffic Director-Steuerungsebene migriert. Sie können die Istio APIs weiterhin für die Konfiguration verwenden.
Informationen dazu, ob Ihre Cluster noch die Istio-Steuerungsebene verwenden oder zur neuen globalen Steuerungsebene migriert wurden, finden Sie unter Steuerungsebenenimplementierung ermitteln.
Nächste Schritte
- Wenn Sie Bestandskunde sind, lesen Sie den Hilfeartikel Verwaltete Control Plane für Bestandskunden.
- Wenn Sie die Einrichtung mit GKE planen, lesen Sie den Hilfeartikel Steuerungsebene bereitstellen.
- Wenn Sie die Einrichtung mit der Compute Engine und VMs planen, lesen Sie den Hilfeartikel Einrichtung für Dienst-Routing-APIs mit Envoy und proxylosen Arbeitslasten vorbereiten.