Zielproxys für Cloud Service Mesh
Dieses Dokument bezieht sich nur auf Cloud Service Mesh mit den Load Balancing APIs. Mi. empfehlen wir Ihnen dringend, die Methode Dienstrouting-APIs um das Cloud Service Mesh bereitzustellen.
Wenn Sie Cloud Service Mesh konfigurieren, konfigurieren Sie eine der Ressourcen, die Zielproxy. Im Kontext von Cloud Service Mesh haben Zielproxys zwei primäre Funktionen:
Definieren des Protokolls, das Cloud Service Mesh-Clients verwenden, wenn eine Verbindung zu den Back-Ends oder Endpunkten geöffnet wird, die einem Dienst zugeordnet sind.
Arbeiten mit Weiterleitungsregeln und URL-Zuordnungen, um eine Routingregelzuordnung zu erstellen. Die Routingregelzuordnung stellt abhängig vom Typ des Zielproxys zusätzliche Funktionen (etwa Routingregeln) zur Verfügung. Eine ungültige Auswahl wird in der Regel entweder in der Benutzeroberfläche ausgeblendet oder von der API abgelehnt.
Zielproxytypen und Anfrageprotokolle
Cloud Service Mesh generiert die Clientkonfiguration immer auf der Grundlage des konfigurierten Zielproxytyps. Wenn Sie einen Zielproxytyp konfigurieren, verwendet der Cloud Service Mesh-Client ein bestimmtes Anfrageprotokoll.
Zielproxy | Protokoll anfordern |
---|---|
HTTPS | Clients initiieren HTTPS-Verbindungen |
HTTP | Clients initiieren HTTP-Verbindungen |
gRPC | Clients initiieren gRPC-Verbindungen |
TCP | Clients initiieren TCP-Verbindungen |
Sie können mehrere Typen ausgewählt werden. Beispiel: Ihre Anwendung möchte zur Kommunikation mit einigen Diensten HTTP verwenden, für andere Dienste aber TCP. Für einen solchen Anwendungsfall müssen Sie sowohl einen Ziel-HTTP-Proxy als auch einen Ziel-TCP-Proxy einrichten.
Gültige Ressourcenkombinationen in einer Routingregelzuordnung
Um Fehlkonfigurationen zu vermeiden, können Sie mit Cloud Service Mesh nur Routingregeln erstellen die so aussehen:
- Weiterleitungsregel > globaler Ziel-HTTPS-Proxy > URL-Zuordnung > ein oder mehrere Back-End-Dienste
- Weiterleitungsregel > globaler Ziel-HTTP-Proxy > URL-Zuordnung > ein oder mehrere Back-End-Dienste
- Weiterleitungsregel > globaler Ziel-gRPC-Proxy > URL-Zuordnung > ein oder mehrere Back-End-Dienste
- Weiterleitungsregel > globaler Ziel-TCP-Proxy > ein Back-End-Dienst
Wenn Sie einen Ziel-HTTP-Proxy mit der Google Cloud Console einrichten, wird der Zielproxy implizit im Rahmen Ihrer Konfiguration der Routingregelzuordnung festgelegt. Die Einrichtung des TCP-Proxys wird in der Google Cloud Console noch nicht unterstützt.
Bei Verwendung der Google Cloud CLI oder der APIs muss der Zielproxy explizit festgelegt werden.
Traffic-Verarbeitung
In den folgenden Abschnitten wird beschrieben, wie Traffic mit dem verwendeten Ziel-Proxy-Typ verarbeitet wird.
HTTP- oder HTTPS-Zielproxy verwenden
Wenn Sie HTTP- oder HTTPS-basierte Dienste konfigurieren, wird normalerweise für jede Dienstinstanz ein Envoy-Proxy bereitgestellt. Cloud Service Mesh konfiguriert diesen Envoy-Proxy. Er ist Teil Ihrer Service-Mesh-Datenebene und verarbeitet Traffic folgendermaßen.
Der Envoy-Proxy empfängt die ausgehende Anfrage. Anschließend werden die Ziel-IP-Adresse und der Zielport der Anfrage mit der IP-Adresse und dem Port verglichen, die in jeder Weiterleitungsregel konfiguriert sind, die auf einen Ziel-HTTP- oder Ziel-HTTPS-Proxy verweist. Wenn eine Übereinstimmung gefunden wird, wertet der Envoy-Proxy die Anfrage gemäß der entsprechenden URL-Zuordnung des Zielproxys aus.
TCP-Ziel-Proxy verwenden
Beim Konfigurieren von TCP-basierten Diensten wird in der Regel pro Dienstinstanz ein Envoy-Proxy bereitgestellt. Cloud Service Mesh konfiguriert diesem Envoy-Proxy. Er ist Teil Ihrer Service-Mesh-Datenebene und verarbeitet Traffic folgendermaßen.
Der Envoy-Proxy empfängt die ausgehende Anfrage. Anschließend werden die Ziel-IP-Adresse und der Zielport der Anfrage mit der IP-Adresse und dem Port verglichen, die in jeder Weiterleitungsregel konfiguriert sind, die auf einen Ziel-TCP-Proxy verweist. Über die Weiterleitungsregel wird der TCP-Traffic dann an einen Zielproxy weitergeleitet, der auf einen Standard-Backend-Dienst verweist. Der Backend-Dienst gibt eine Systemdiagnose an und bestimmt das entsprechende Backend.
gRPC-Zielproxy verwenden
Wenn Sie gRPC-basierte Dienste konfigurieren, werden für die Dienstinstanzen im Allgemeinen keine Envoy-Proxys bereitgestellt. Stattdessen konfiguriert Cloud Service Mesh die gRPC-Bibliothek. Die Bibliothek ist Teil Ihrer Service-Mesh-Datenebene und verarbeitet den Traffic folgendermaßen.
Die gRPC-Bibliothek vergleicht den im URI angegebenen Wert für hostname[:port]
mit den Hostregeln in allen URL-Zuordnungen, auf die ein gRPC-Zielproxy verweist. Wird eine Übereinstimmung gefunden, wertet die gRPC-Bibliothek die Anfrage gemäß den Pfadregeln für die übereinstimmende Hostregel aus.
Zielproxy-Ressourcen
Zum Hinzufügen, Löschen, Auflisten und Abrufen von Informationen zu Zielproxys können Sie die REST API oder die gcloud CLI verwenden.
Darüber hinaus können Sie die folgenden gcloud
-Befehle verwenden, um Informationen zu einem Zielproxy abzurufen:
gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] list
gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] describe TARGET_PROXY_NAME
APIs
Beschreibungen der Attribute und Methoden, die Sie bei der Arbeit mit Zielproxys über die REST API nutzen können, finden Sie in den folgenden Ressourcen, die Cloud Service Mesh unterstützt:
gcloud-CLI
Informationen zur Google Cloud CLI finden Sie hier:
Nächste Schritte
- Weitere Informationen zu Cloud Service Mesh finden Sie unter Cloud Service Mesh – Übersicht.
- Informationen zur Bereitstellung von Cloud Service Mesh finden Sie im Leitfaden zur Cloud Service Mesh-Bereitstellung.