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 的属性。转发规则会处理与目标 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 个字符),并且与正则表达式匹配: 第一个字符必须是小写字母,后面所有字符必须是短划线、小写字母或数字,但最后一个字符不能是短划线。 |
IPAddress |
✔ | 以下各项之一: Cloud Service Mesh 转发规则的 IP 地址不需要与 Virtual Private Cloud (VPC) 网络中子网的 IP 地址范围相对应。对于给定的 VPC 网络、IP 地址和端口,您只能有一个内部自行管理的转发规则。 例如,在同一 VPC 网络中,无法创建两个使用 |
具有目标 gRPC 代理的 IPAddress |
引用目标 gRPC 代理并将 使用 因此,Cloud Service Mesh 使用 |
|
target |
✔ |
此转发规则将流量定向到的目标代理。Cloud Service Mesh 支持 当您使用 Google Cloud Console 配置转发规则时,系统会自动配置目标代理。使用 Google Cloud CLI 或 API 时,目标代理必须存在才能创建转发规则。您可以为给定代理使用多个转发规则。 |
IPProtocol |
✔ | 此转发规则匹配的协议类型。支持的唯一值是 TCP 。 |
loadBalancingScheme |
✔ | 指定如何使用转发规则。Cloud Service Mesh 的有效值为 INTERNAL_SELF_MANAGED 。 |
portRange |
✔ |
通过短划线连接的端口或端口范围。 发送到这些端口的指定协议的数据包将转发到相应的后端。可以指定范围中的单个数字,例如 对于给定的 VPC 网络、IP 地址和端口,您只能有一个内部自行管理的转发规则。例如,在同一 VPC 网络中,无法创建两个使用 使用无代理 gRPC 服务,转发规则中的端口与 gRPC 应用用于连接到服务的 URI 中指定的端口匹配。如果未在 URI 中指定端口,则 |
network |
✔ |
指定运行 Envoy 代理的 Google Cloud 虚拟机所在的 VPC 网络。 Envoy 代理会读取您为代理所部署在的同一网络定义的 Cloud Service Mesh 配置。您可以使用名为 Cloud Service Mesh 仅支持 Google Cloud 网络中的客户端负载均衡。您可以在转发规则中指定网络名称。不支持 VPC 网络对等互连。 |
添加全局转发规则
如需了解如何在总体 Cloud Service Mesh 设置中使用负载均衡 API 配置转发规则,请参阅以下内容:
- 为 Compute Engine 虚拟机设置 Cloud Service Mesh(采用自动 Envoy 部署)
- 为 Compute Engine 虚拟机设置 Cloud Service Mesh(采用手动 Envoy 部署)
- 为 GKE pod 使用自动 Envoy 注入功能设置 Cloud Service Mesh
- 为 GKE pod 使用手动 Envoy 注入功能设置 Cloud Service Mesh
- 为 Compute Engine 虚拟机和无代理 gRPC 服务设置 Cloud Service Mesh
- 为 GKE Pod 和无代理 gRPC 服务设置 Cloud Service Mesh
后续步骤
- 如需使用元数据过滤器控制哪些 Sidecar 代理接收附加到转发规则的配置,请参阅根据
MetadataFilter
匹配项设置配置过滤。 - 如需路由流量,请参阅 Cloud Service Mesh 路由规则映射概览。
- 如需详细了解 Cloud Service Mesh,请参阅 Cloud Service Mesh 概览。