Zielproxys für Traffic Director

Beim Konfigurieren von Traffic Director legen Sie neben anderen Ressourcen den Zielproxy fest.

Im Kontext von Traffic Director haben Zielproxys zwei primäre Funktionen:

  1. Sie legen immer einen bestimmten Typ fest. Anhand dieses Typs können Traffic Director-Clients feststellen, welches Protokoll beim Herstellen einer Verbindung zu den Back-Ends/Endpunkten, die einem Dienst zugeordnet sind, verwendet werden muss.

  2. Dies wird mit anderen Ressourcen (z. B. Weiterleitungsregeln und URL-Zuordnungen) für eine Routingregelzuordnung kombiniert. 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 entsprechen unterschiedlichen Anfrageprotokollen

Traffic Director generiert die Clientkonfiguration immer auf der Grundlage des festgelegten Zielproxytyps. Je nach angegebenem Zielproxytyp verwendet der Client ein spezielles Anfrageprotokoll.

  • Ziel-HTTP-Proxys: Die Traffic Director-Clients initiieren HTTP-Verbindungen.
  • Ziel-gRPC-Proxys: Die Traffic Director-Clients initiieren gRPC-Verbindungen.
  • Ziel-TCP-Proxys: Die Traffic Director-Clients initiieren TCP-Verbindungen.

Es können auch mehrere Typen angegeben 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 Konfigurationsfehler zu vermeiden, erlaubt Traffic Director nur Routingregelzuordnungen in folgender Form:

  • 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)

Systemdiagnosen und Back-End-Gruppen werden in der obigen Liste nicht angezeigt.

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 eines TCP-Proxys wird in der Cloud Console noch nicht unterstützt.

Bei Verwendung der gcloud-Befehlszeile oder der APIs muss der Zielproxy explizit festgelegt werden.

Traffic-Verarbeitung bei Verwendung eines Ziel-HTTP-Proxys

Wenn Sie HTTP-basierte Dienste konfigurieren, wird in der Regel für jede Dienstinstanz ein Envoy-Proxy bereitgestellt. Dieser Envoy-Proxy wird von Traffic Director konfiguriert. Er gehört zu Ihrer Service Mesh-Datenebene und verarbeitet die Daten in folgender Weise:

Der Envoy-Proxy empfängt die ausgehende Anfrage und vergleicht die Ziel-IP-Adresse und den Zielport der Anfrage mit der IP-Adresse und mit dem Port, die in jeder Weiterleitungsregel konfiguriert sind, die auf einen Ziel-HTTP-Proxy verweist. Bei Übereinstimmung wertet der Envoy-Proxy die Anfrage gemäß der entsprechenden URL-Zuordnung des Ziel-HTTP-Proxys aus.

Traffic-Verarbeitung bei Verwendung eines Ziel-TCP-Proxys

Beim Konfigurieren von TCP-basierten Diensten wird in der Regel für jede Dienstinstanz ein Envoy-Proxy bereitgestellt. Dieser Envoy-Proxy wird von Traffic Director konfiguriert. Er gehört zu Ihrer Service Mesh-Datenebene und verarbeitet die Daten in folgender Weise:

Der Envoy-Proxy empfängt die ausgehende Anfrage und vergleicht die Ziel-IP-Adresse und den Zielport der Anfrage mit der IP-Adresse und mit dem Port, die in jeder Weiterleitungsregel festgelegt sind, die auf einen Ziel-TCP-Proxy verweist. Über die Weiterleitungsregel wird der TCP-Traffic dann an einen Zielproxy weitergeleitet, der auf einen Standard-Back-End-Dienst verweist. Dieser legt die Systemdiagnose sowie das entsprechende Back-End fest.

Traffic-Verarbeitung bei Verwendung des Ziel-gRPC-Proxys

Wenn Sie gRPC-basierte Dienste konfigurieren, werden für die Dienstinstanzen im Allgemeinen keine Envoy-Proxys bereitgestellt. Die gRPC-Bibliothek wird von Traffic Director konfiguriert. Diese ist Teil Ihrer Service Mesh-Datenebene und verarbeitet die Daten so:

Die gRPC-Bibliothek vergleicht den im URI angegebenen Wert für hostname[:port] mit den Hostregeln in allen URL-Zuordnungen, auf die von einem Ziel-gRPC-Proxy verwiesen wird. Wird eine Übereinstimmung gefunden, wertet die gRPC-Bibliothek die Anfrage gemäß den Pfadregeln für die übereinstimmende Hostregel aus.

Das Abfangen von Traffic für Gateways und mittlere Proxys konfigurieren

Für einen Service Mesh gilt in der Regel Folgendes:

  • Alle Dienstinstanzen haben einen eigenen Envoy-Sidecar-Proxy oder eine gRPC-Bibliothek.
    • Wenn Sie Envoy verwenden, werden die Dienstinstanzen so konfiguriert, dass ausgehende Anfragen abgefangen und an den Envoy-Proxy weitergeleitet werden.
  • Der Envoy-Proxy oder die gRPC-Bibliothek verarbeitet die ausgehenden Anfragen.

Sie können mit Traffic Director aber auch ein Gateway oder einen mittleren Proxy konfigurieren. In dieser Konfiguration ist der Envoy-Proxy von Ihren Dienstinstanzen unabhängig. Er überwacht auf eingehende Anfragen an einem Port und verarbeitet die Anfragen, wenn sie eingehen.

Bei dieser Art der Einrichtung müssen Sie kein Abfangen und keine Weiterleitung konfigurieren. Stattdessen aktivieren Sie einfach das Flag --proxy-bind für den Ziel-HTTP-Proxy. Dadurch wird der eingehende Traffic abgefangen und der Envoy-Proxy überwacht eingehende Anfragen an die IP-Adresse und an den Port, die in der Weiterleitungsregel konfiguriert sind.

Wie bereits erwähnt, verweist die Weiterleitungsregel auf einen Zielproxy. Wenn Sie --proxy-bind also auf einem HTTP-Zielproxy aktivieren, überwacht der Proxy die IP-Adresse und den Port der Weiterleitungsregel, die auf diesen Ziel-HTTP-Proxy verweist.

Wichtige Hinweise:

  • Wenn Sie Traffic Director für ein Service Mesh verwenden, müssen Sie --proxy-bind nicht angeben, da ausgehender Traffic in der Regel von Sidecar-Proxys empfangen und weitergeleitet wird.
  • Das Flag --proxy-bind ist für Ziel-gRPC-Proxys nicht verfügbar.

Zielproxy-Ressourcen

Zum Hinzufügen, Löschen, Auflisten und Abrufen von Informationen zu Zielproxys können Sie die REST API oder das gcloud SDK verwenden.

Sie können jedoch 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 auf den folgenden Seiten:

gcloud SDK

Weitere Informationen zum gcloud-Befehlszeilentool finden Sie auf den folgenden Seiten:

Nächste Schritte

Weitere Informationen