Cloud Service Mesh 的转发规则

本文档仅适用于使用负载均衡 API 的 Cloud Service Mesh。我们强烈建议您使用服务路由 API 来部署 Cloud Service Mesh。

Cloud Service Mesh 使用转发规则来确定将网格中的流量路由到的目标代理。

每条转发规则都会为某项服务提供一个全局 IPv4 地址。您可以使用该地址为您的服务创建内部 DNS 记录(例如,使用 Cloud DNS 托管专用区域)。转发规则中的元数据过滤器会指定与 xDS 兼容的 Sidecar 代理接收配置的条件。

对于 Cloud Service Mesh 控制平面,内部、自行管理和全局转发规则通过 IP 地址、端口和协议将流量路由到目标代理。该代理指向包含确定流量目的地的规则的网址映射。网址映射还会指定默认后端服务。此后端服务指定健康检查并确定适当的后端,例如包含虚拟机 (VM) 实例的托管实例组 (MIG) 或包含 Google Kubernetes Engine (GKE) 后端 Pod 的网络端点组 (NEG)

下图展示了转发规则在 Cloud Service Mesh 架构中的位置。

突出显示的 Cloud Service Mesh 转发规则。
突出显示的 Cloud Service Mesh 转发规则(点击可放大)

转发规则属性

转发规则资源包含以下适用于 Cloud Service Mesh 的属性。转发规则会处理与目标 IP 地址、协议和端口号匹配的流量。

使用 Cloud Service Mesh 时,转发规则中的 0.0.0.0 IP 地址之一。0.0.0.0 IP 地址表示任何 IP 地址。

  • 使用代理部署时,如果找不到其他特定匹配,则 0.0.0.0 IP 地址允许代理匹配任何传入流量。

  • 在无代理部署中,0.0.0.0 IP 地址提供了一种指定不需要 IP 地址的方法。详细了解如何将 0.0.0.0 IP 地址与目标 gRPC 代理搭配使用。

下表更详细地介绍了转发规则属性。

属性 必需 说明
name

转发规则的名称。

该名称在项目中必须是唯一的(1 到 63 个字符),并且与正则表达式匹配:[a-z]([-a-z0-9]*[a-z0-9])?

第一个字符必须是小写字母,后面所有字符必须是短划线、小写字母或数字,但最后一个字符不能是短划线。

IPAddress

以下各项之一:0.0.0.0127.0.0.1 或任何 RFC 1918 地址。

Cloud Service Mesh 转发规则的 IP 地址不需要与 Virtual Private Cloud (VPC) 网络中子网的 IP 地址范围相对应。对于给定的 VPC 网络、IP 地址和端口,您只能有一个内部自行管理的转发规则。

例如,在同一 VPC 网络中,无法创建两个使用 0.0.0.0 IP 地址和端口 80 的转发规则。

具有目标 gRPC 代理的 IPAddress

引用目标 gRPC 代理并将 validateForProxyless字段设置为 TRUE 的转发规则必须将其 IP 地址设置为 0.0.0.0

使用 xds 架构的 gRPC 客户端不会执行 DNS 查找来解析通道 URI 中的主机名。相反,此类客户端会通过向 Cloud Service Mesh 发送监听器发现服务 (LDS) 请求来解析目标 URI 中的 hostname[:port]。您不需要执行 DNS 查找,也不需要主机名的 DNS 条目。

因此,Cloud Service Mesh 使用 0.0.0.0 IP 地址和 URI 中指定的端口(默认 80)来查找转发规则。接着,Cloud Service Mesh 会在转发规则引用的目标代理的网址映射中查找匹配的主机规则。

target

此转发规则将流量定向到的目标代理。Cloud Service Mesh 支持 target-http-proxytarget-https-proxytarget-grpc-proxy

当您使用 Google Cloud Console 配置转发规则时,系统会自动配置目标代理。使用 Google Cloud CLI 或 API 时,目标代理必须存在才能创建转发规则。您可以为给定代理使用多个转发规则。

IPProtocol 此转发规则匹配的协议类型。支持的唯一值是 TCP
loadBalancingScheme 指定如何使用转发规则。Cloud Service Mesh 的有效值为 INTERNAL_SELF_MANAGED
portRange

通过短划线连接的端口或端口范围。

发送到这些端口的指定协议的数据包将转发到相应的后端。可以指定范围中的单个数字,例如 8080-8080

对于给定的 VPC 网络、IP 地址和端口,您只能有一个内部自行管理的转发规则。例如,在同一 VPC 网络中,无法创建两个使用 0.0.0.0 IP 地址和端口 80 的转发规则。

使用无代理 gRPC 服务,转发规则中的端口与 gRPC 应用用于连接到服务的 URI 中指定的端口匹配。如果未在 URI 中指定端口,则 80 是默认端口。

network

指定运行 Envoy 代理的 Google Cloud 虚拟机所在的 VPC 网络。

Envoy 代理会读取您为代理所部署在的同一网络定义的 Cloud Service Mesh 配置。您可以使用名为 default 的 VPC 网络或自定义网络。

Cloud Service Mesh 仅支持 Google Cloud 网络中的客户端负载均衡。您可以在转发规则中指定网络名称。不支持 VPC 网络对等互连。

添加全局转发规则

如需了解如何在总体 Cloud Service Mesh 设置中使用负载均衡 API 配置转发规则,请参阅以下内容:

后续步骤