Diensterkennung

Cloud Service Mesh bietet Dienst- und Endpunkterkennung. Mit diesen Funktionen können Sie die VM-Instanzen und Containerinstanzen, die Ihren Code ausführen, als Endpunkte Ihrer Dienste gruppieren.

Cloud Service Mesh überwacht diese Dienste, damit es aktuelle Informationen zur Systemdiagnose für seine Clients freigeben kann. Wenn eine Ihrer Anwendungen daher ihren Cloud Service Mesh-Client (z. B. einen Envoy-Sidecar-Proxy oder eine proxylose gRPC-Anwendung) zum Senden einer Anfrage verwendet, profitiert sie von aktuellen Informationen zu Ihren Diensten.

Im Kontext von Cloud Service Mesh ist ein Client ein Anwendungscode, der auf einer VM oder einem Container ausgeführt wird und Anfragen zum Senden an einen Server formuliert. Ein Server ist der Anwendungscode, der solche Anfragen empfängt. Ein Cloud Service Mesh-Client ist ein Envoy-, gRPC- oder anderer xDS-Client, der mit Cloud Service Mesh verbunden und Teil der Datenebene ist.

In der Datenebene führt Envoy oder gRPC folgende Schritte aus:

  1. Er prüft eine Anfrage und gleicht sie mit einem Back-End-Dienst ab. Dabei handelt es sich um eine Ressource, die Sie während der Bereitstellung konfigurieren.
  2. Nachdem die Anfrage abgeglichen wurde, wendet Envoy oder gRPC alle zuvor konfigurierten Traffic- oder Sicherheitsrichtlinien an, wählt ein Back-End oder einen Endpunkt aus und leitet die Anfrage an dieses Back-End oder diesen Endpunkt weiter.

Diensterkennung

Cloud Service Mesh bietet Diensterkennung. Beim Konfigurieren von Cloud Service Mesh erstellen Sie Back-End-Dienste. Sie definieren außerdem Routingregeln, die festlegen, wie eine ausgehende Anfrage (eine von Ihrem Anwendungscode gesendete und von einem Cloud Service Mesh-Client verarbeitete Anfrage) mit einem bestimmten Dienst abgeglichen wird. Wenn ein Cloud Service Mesh-Client eine Anfrage verarbeitet, die einer Regel entspricht, kann er den Dienst auswählen, der die Anfrage erhalten soll.

Beispiel:

  • Sie haben eine VM, auf der Ihre Anwendung ausgeführt wird. Diese VM hat einen Envoy-Sidecar-Proxy, der mit Cloud Service Mesh verbunden ist und ausgehende Anfragen im Namen der Anwendung verarbeitet.
  • Sie haben einen Backend-Dienst mit dem Namen payments konfiguriert. Dieser Backend-Dienst hat zwei NEG-Backends (Netzwerk-Endpunktgruppe), die auf verschiedene Containerinstanzen verweisen, die den Code für Ihren payments-Dienst ausführen.
  • Sie haben eine Mesh-Ressource konfiguriert, die ein Mesh-Netzwerk namens sidecar-mesh definiert.
  • Sie haben eine Route-Ressource konfiguriert, die Traffic-Ziele für den Back-End-Dienst payments und den Hostnamen helloworld-gce definiert.

Wenn Ihre Anwendung (auf der VM) bei dieser Konfiguration eine HTTP-Anfrage an payments.example.com sendet, weiß der Cloud Service Mesh-Client, dass diese Anfrage für den Dienst payments bestimmt ist.

Wenn Sie Cloud Service Mesh mit proxylosen gRPC-Diensten verwenden, funktioniert die Diensterkennung ähnlich. Eine gRPC-Bibliothek, die als Cloud Service Mesh-Client fungiert, erhält jedoch nur Informationen zu den Diensten, für die Sie einen xDS-Resolver angeben. Standardmäßig ruft Envoy Informationen zu allen Diensten ab, die in dem VPC-Netzwerk (Virtual Private Cloud) konfiguriert sind, das in der Envoy-Bootstrap-Datei angegeben ist.

Endpunkterkennung

Mit der Diensterkennung können sich Kunden über Ihre Dienste informieren. Mit der Endpunkterkennung können sich Clients über die Instanzen informieren, auf denen Ihr Code ausgeführt wird.

Wenn Sie einen Dienst erstellen, geben Sie auch die Back-Ends für diesen Dienst an. Diese Back-Ends sind entweder VMs in verwalteten Instanzgruppen (MIGs) oder Container in NEGs. Cloud Service Mesh überwacht diese MIGs und NEGs, damit es weiß, wann Instanzen und Endpunkte erstellt und entfernt werden.

Cloud Service Mesh gibt kontinuierlich aktuelle Informationen zu diesen Diensten an seine Kunden weiter. Anhand dieser Informationen können Clients verhindern, dass Traffic an Endpunkte gesendet wird, die nicht mehr existieren. Außerdem können Clients mehr über neue Endpunkte erfahren und die zusätzliche Kapazität nutzen, die diese Endpunkte bieten.

Neben dem Hinzufügen von Endpunkten zu MIGs oder NEGs und dem Einrichten von Cloud Service Mesh benötigen Sie keine zusätzliche Konfiguration, um die Diensterkennung mit Cloud Service Mesh zu aktivieren.

Abfangen von Sidecar-Proxy-Traffic in Cloud Service Mesh

Cloud Service Mesh unterstützt das Sidecar-Proxy-Modell. Wenn eine Anwendung bei diesem Modell Traffic an ihr Ziel sendet, wird der Traffic abgefangen und an einen Port im Sidecar-Proxy auf dem Host weitergeleitet, auf dem die Anwendung ausgeführt wird. Der Sidecar-Proxy entscheidet, wie der Traffic verteilt wird, und sendet den Traffic an sein Ziel.

Mit Cloud Service Mesh und den Service Routing APIs wird das Abfangen von Traffic automatisch verwaltet.

Nächste Schritte