Übersicht über Routingregelzuordnungen

Dieses Dokument gilt nur für Cloud Service Mesh mit den Load Balancing APIs. Mi. empfehlen wir Ihnen dringend, die Methode Dienstrouting-APIs

Eine Routingregelzuordnung besteht aus Folgendem:

Wenn Sie diese Ressourcen für Cloud Service Mesh erstellen und konfigurieren, Cloud Service Mesh verwendet die Werte, um die Konfiguration zu erstellen, an Ihre Datenebene sendet, die xDS-Clients wie Envoy umfasst 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 ist das Load-Balancing der Weiterleitungsregel Schema muss 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, wie folgt 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 zur Weiterleitung von Traffic mit einem Ziel-TCP-Proxy 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, Cloud Service Mesh sendet dem Dienst entsprechende Informationen. wie folgt:

  • Cloud Service Mesh sucht mit dem Load-Balancing-Schema nach Weiterleitungsregeln Legen Sie INTERNAL_SELF_MANAGED fest, um Weiterleitungsregeln zu finden, deren Port übereinstimmt. über den im Ziel-URI angegebenen Port.
  • Cloud Service Mesh ermittelt den gRPC-Zielproxy oder den Ziel-HTTP-Proxy für für jede dieser Weiterleitungsregeln.
  • Cloud Service Mesh findet die URL-Zuordnungen, auf die diese gRPC-Zielproxys verweisen oder Ziel-HTTP-Proxys.
  • Cloud Service Mesh prüft die Hostregeln in der URL-Zuordnung, die auch die hostname[:port]-Format und sucht nach einer Übereinstimmung.
  • Wenn eine Übereinstimmung gefunden wird, gibt Cloud Service Mesh Routingregeln und Dienstinformationen an den gRPC-Client.

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.

Daher empfehlen wir, nicht denselben Hostnamen für Mehrere URL-Zuordnungen, auf die durch Weiterleitungsregeln verwiesen wird, die dasselbe Port.

Nächste Schritte