路由规则映射概览

本文档仅适用于使用负载均衡 API 的 Cloud Service Mesh。周三 强烈建议您使用 服务路由 API

路由规则映射包含以下内容:

为 Cloud Service Mesh 创建和配置这些资源时, Cloud Service Mesh 使用这些值创建 发送到您的数据平面,其中包括 Envoy 等 xDS 客户端 代理和无代理 gRPC 应用。随后,数据平面会根据此配置处理流量。

转发规则引用目标代理,并具有 IP 地址和端口。对于 Cloud Service Mesh 部署,转发规则的负载均衡功能 架构必须设置为 INTERNAL_SELF_MANAGED。目标代理又会引用网址映射。这三种资源相结合可形成路由规则映射。

引用具有 设为 TRUEvalidateForProxyless 字段必须将其 IP 地址设置为 0.0.0.0.validateForProxyless 设置为 TRUE 时,系统会拒绝指定除 0.0.0.0 以外的 IP 地址的配置。

路由规则映射定义流量从客户端传递到服务网格内的服务器的方式。

支持的目标代理类型

Cloud Service Mesh 支持以下目标代理类型:

  • 目标 HTTP 代理,可在客户端和服务器发送或接收 HTTP 或 HTTP/2 流量时进行配置。
  • 目标 HTTPS 代理,您可以在客户端和服务器发送 或接收 HTTPS 流量设置服务安全性时,必须执行此操作 安全连接。
  • 目标 TCP 代理 - 您在客户端和服务器发送或接收 TCP 流量时配置。
  • 目标 gRPC 代理,可在客户端和服务器发送或接收 gRPC 流量时进行配置。目标 gRPC 代理包含字段 validateForProxyless,当您部署无代理的 gRPC 服务时,此字段会设置为 TRUE

使用 Envoy Sidecar 代理进行流量路由

将 Cloud Service Mesh 与 Envoy Sidecar 代理搭配使用时,客户端请求 具体路由如下:

  • 网络堆栈会拦截请求并将其重定向到您的 Envoy Sidecar 代理。
  • Envoy Sidecar 代理会查看请求的 IP 地址和端口。
  • 根据将负载平衡方案设置为 INTERNAL_SELF_MANAGED 的任何转发规则中指定的 IP 地址和端口检查 IP 地址和端口对。
  • 如果找到具有匹配 IP 地址和端口的转发规则,Envoy 将查看转发规则引用的目标 HTTP 代理或目标 gRPC 代理。
  • Envoy 检查目标代理引用的网址映射。
  • Envoy 根据网址映射中指定的规则路由请求。

如需了解如何使用目标 TCP 代理路由流量,请参阅 使用 Cloud Service Mesh 路由 TCP 流量

使用无代理 gRPC 应用的流量路由

对于无代理 gRPC 应用,此行为有所不同。配置 gRPC 客户端时,您可指定客户端需要联系的服务的目标 URI。此 URI 使用 xds 名称解析器架构和 hostname:port 格式,例如 xds:///example.hostname:8080

当无代理 gRPC 客户端连接到 Cloud Service Mesh 时, Cloud Service Mesh 向其发送服务对应的信息 如下所示:

  • Cloud Service Mesh 使用负载均衡方案查找转发规则 设置为 INTERNAL_SELF_MANAGED 以查找端口匹配的转发规则 在目标 URI 中指定的端口。
  • Cloud Service Mesh 会为其查找目标 gRPC 代理或目标 HTTP 代理 每条转发规则
  • Cloud Service Mesh 会查找这些目标 gRPC 代理引用的网址映射 或目标 HTTP 代理
  • Cloud Service Mesh 会检查网址映射中的主机规则, hostname[:port] 格式,并查找匹配项。
  • 找到匹配项后,Cloud Service Mesh 会返回路由规则 将服务信息发送到 gRPC 客户端

如果找到多个匹配项,则行为未定义,可能会导致行为无法预测。当同时满足以下两个条件时,通常会发生这种情况:

  • 多个网址映射使用相同的主机名。
  • 采用负载平衡方案 INTERNAL_SELF_MANAGED 的多个转发规则指定相同的端口。

因此,我们建议您不要在多个网域中重复使用相同的主机名 由指定相同名称的转发规则引用的多个网址映射 端口。

后续步骤