Übersicht über Routingregelzuordnungen
Dieses Dokument gilt nur für Cloud Service Mesh mit den Load Balancing APIs. Wir empfehlen dringend, die Service Routing APIs zu verwenden.
Eine Routingregelzuordnung besteht aus Folgendem:
- Einer Weiterleitungsregel, die auf einen Zielproxy verweist
- Einem Zielproxy, der auf eine URL-Zuordnung verweist
- Einer URL-Zuordnung, die verschiedene Routingregeln enthält
Wenn Sie diese Ressourcen für Cloud Service Mesh erstellen und konfigurieren, verwendet Cloud Service Mesh die Werte, um die Konfiguration zu erstellen, die an Ihre Datenebene gesendet wird. Diese umfasst xDS-Clients wie Envoy-Proxys und proxylose gRPC-Anwendungen. Die Datenebene verarbeitet dann den Traffic gemäß dieser Konfiguration.
Eine Weiterleitungsregel verweist auf einen Zielproxy und hat eine IP-Adresse und einen Port.
Für Cloud Service Mesh-Bereitstellungen muss das Load-Balancing-Schema der Weiterleitungsregel auf INTERNAL_SELF_MANAGED
festgelegt sein. Der Zielproxy wiederum verweist auf eine URL-Zuordnung. Diese drei Ressourcen bilden zusammen eine Routingregelzuordnung.
Für eine Weiterleitungsregel, die auf einen gRPC-Zielproxy verweist, für den das Feld validateForProxyless
auf TRUE
gesetzt ist, muss die IP-Adresse auf 0.0.0.0
festgelegt sein. Wenn validateForProxyless
auf TRUE
gesetzt ist, werden Konfigurationen, die eine andere IP-Adresse als 0.0.0.0
angeben, abgelehnt.
Die Routingregelzuordnung definiert, wie der Traffic von Clients an Server innerhalb eines Service Mesh übertragen wird.
Unterstützte Zielproxytypen
Cloud Service Mesh unterstützt die folgenden Zielproxytypen:
- HTTP-Zielproxy, den Sie konfigurieren, wenn Ihre Clients und Server HTTP- oder HTTP/2-Traffic senden oder empfangen.
- HTTPS-Zielproxy, den Sie konfigurieren, wenn Ihre Clients und Server HTTPS-Traffic senden oder empfangen. Dies ist erforderlich, wenn Sie die Dienstsicherheit mit Envoy-Proxys einrichten.
- TCP-Zielproxy, den Sie konfigurieren, wenn Ihre Clients und Server TCP-Traffic senden oder empfangen.
- gRPC-Zielproxy, den Sie konfigurieren, wenn Ihre Clients und Server gRPC-Traffic senden oder empfangen. gRPC-Zielproxys enthalten das Feld
validateForProxyless
, das in der Regel aufTRUE
gesetzt wird, wenn Sie proxylose gRPC-Dienste bereitstellen.
Traffic-Routing mit Envoy-Sidecar-Proxys
Wenn Sie Cloud Service Mesh mit Envoy-Sidecar-Proxys verwenden, werden Clientanfragen so weitergeleitet:
- Der Netzwerk-Stack fängt die Anfrage ab und leitet sie an Ihren Envoy-Sidecar-Proxy weiter.
- Der Envoy-Sidecar-Proxy prüft die IP-Adresse und den Port der Anfrage.
- Die IP-Adresse und das Port-Paar werden mit der IP-Adresse und dem Port verglichen, die in den Weiterleitungsregeln angegeben sind, für die das Load-Balancing-Schema auf
INTERNAL_SELF_MANAGED
gesetzt ist. - Wird eine Weiterleitungsregel mit einer passenden IP-Adresse und einem übereinstimmenden Port gefunden, prüft Envoy den HTTP- oder gRPC-Zielproxy, auf den die Weiterleitungsregel verweist.
- Envoy prüft die URL-Zuordnung, auf die der Zielproxy verweist.
- Envoy leitet die Anfrage gemäß den in der URL-Zuordnung angegebenen Regeln weiter.
Informationen zum Routing von Traffic mit einem TCP-Zielproxy finden Sie unter TCP-Traffic mit Cloud Service Mesh weiterleiten.
Traffic-Routing mit proxylosen gRPC-Anwendungen
Dieses Verhalten ist bei proxylosen gRPC-Anwendungen anders. Wenn Sie einen gRPC-Client konfigurieren, geben Sie den Ziel-URI für den Dienst an, den der Client kontaktieren muss. Dieser URI verwendet den Name-Resolver xds
und das Format hostname:port
, z. B. xds:///example.hostname:8080
.
Wenn der proxylose gRPC-Client eine Verbindung zu Cloud Service Mesh herstellt, sendet Cloud Service Mesh die dem Dienst entsprechenden Informationen wie folgt:
- Cloud Service Mesh sucht nach Weiterleitungsregeln mit dem Load-Balancing-Schema
INTERNAL_SELF_MANAGED
, um Weiterleitungsregeln zu finden, deren Port mit dem im Ziel-URI angegebenen Port übereinstimmt. - Cloud Service Mesh findet den gRPC-Zielproxy oder HTTP-Zielproxy für jede dieser Weiterleitungsregeln.
- Cloud Service Mesh findet die URL-Zuordnungen, auf die von diesen gRPC-Zielproxys oder HTTP-Ziel-Proxys verwiesen wird.
- Cloud Service Mesh prüft die Hostregeln in der URL-Zuordnung, die ebenfalls das Format
hostname[:port]
haben, und sucht nach einer Übereinstimmung. - Wenn eine Übereinstimmung gefunden wird, gibt Cloud Service Mesh Routingregeln und Dienstinformationen an den gRPC-Client zurück.
Werden mehrere Übereinstimmungen gefunden, ist das Verhalten nicht definiert und kann zu unvorhersehbarem Verhalten führen. Dies geschieht im Allgemeinen, wenn die beiden folgenden Bedingungen erfüllt sind:
- Derselbe Hostname wird für mehrere URL-Zuordnungen verwendet.
- Mehrere Weiterleitungsregeln mit dem Load-Balancing-Schema
INTERNAL_SELF_MANAGED
geben denselben Port an.
Aus diesem Grund empfehlen wir, denselben Hostnamen nicht für mehrere URL-Zuordnungen zu verwenden, auf die durch Weiterleitungsregeln, die denselben Port angeben, verwiesen wird.
Nächste Schritte
Informationen zu einer detailgenauen Steuerung der Handhabung des Traffics finden Sie unter Erweiterte Trafficverwaltung – Übersicht.
Weitere Informationen zum Cloud Service Mesh finden Sie in der Übersicht zum Cloud Service Mesh.