Übersicht über Routingregelzuordnungen

Dieses Dokument gilt nur für Cloud Service Mesh mit den Load Balancing APIs. Wir empfehlen dringend, die Dienstrouting APIs zu verwenden.

Eine Routingregelzuordnung besteht aus Folgendem:

Wenn Sie diese Ressourcen für Cloud Service Mesh erstellen und konfigurieren, erstellt Cloud Service Mesh anhand der Werte die Konfiguration, die an Ihre Datenebene gesendet wird. Diese enthält 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 auf TRUE 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 dazu, wie Traffic mit einem Ziel-TCP-Proxy weitergeleitet wird, 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 dem Dienst entsprechende 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 ermittelt für jede dieser Weiterleitungsregeln den gRPC-Zielproxy oder HTTP-Zielproxy.
  • Cloud Service Mesh findet die URL-Zuordnungen, auf die von diesen Ziel-gRPC-Proxys oder Ziel-HTTP-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 wird empfohlen, denselben Hostnamen nicht für mehrere URL-Zuordnungen zu verwenden, auf die von Weiterleitungsregeln mit demselben Port verwiesen wird.

Nächste Schritte