Traffic Director 的目标代理

配置 Traffic Director 时,您配置的某个资源是目标代理。

在 Traffic Director 的环境中,目标代理有两个主要用途:

  1. 它们具有特定的类型。使用此类型时,Traffic Director 客户端知道在打开与服务关联的后端或端点时使用的协议。

  2. 它们可与其他资源(例如转发规则和网址映射)结合使用来创建路由规则映射。路由规则映射可提供其他功能(例如路由规则),具体取决于目标代理的类型。无效选择通常在界面中隐藏,或被 API 拒绝。

目标 TCP 代理只能使用 gcloud 或 API 进行配置。

目标代理类型对应于不同的请求协议

Traffic Director 会根据您配置的目标代理类型为其客户端生成不同的配置。当您配置其他目标代理类型时,客户端会使用特定的请求协议。

  • 目标 HTTPS 代理:Traffic Director 的客户端启动 HTTPS 连接
  • 目标 HTTP 代理:Traffic Director 的客户端启动 HTTP 连接
  • 目标 gRPC 代理:Traffic Director 的客户端启动 gRPC 连接
  • 目标 TCP 代理:Traffic Director 的客户端启动 TCP 连接

请注意,您并非只能选择一种类型。例如,应用可能在对某些服务进行寻址时使用 HTTP,而在对其他服务进行寻址时使用 TCP。对于这种使用场景,您需要同时创建目标 HTTP 代理和目标 TCP 代理。

路由规则映射中的有效资源组合

为避免配置错误,Traffic Director 仅允许您创建如下所示的路由规则映射:

  • 转发规则 -> 全局目标 HTTPS 代理 -> 网址映射 -> 一个或多个后端服务
  • 转发规则 -> 全局目标 HTTP 代理 -> 网址映射 -> 一个或多个后端服务
  • 转发规则 -> 全局目标 gRPC 代理 -> 网址映射 -> 一个或多个后端服务
  • 转发规则 -> 全球目标 TCP 代理 -> 一个后端服务

上面并未显示运行状况检查和后端。

如果您使用 Cloud Console 设置目标 HTTP 代理,系统会在路由规则映射配置中隐式设置目标代理。请注意,Cloud Console 中尚不支持 TCP 代理设置。

如果您使用 gcloud 命令行界面或 API,则需要明确配置目标代理。

使用目标 HTTP 或目标 HTTPS 代理时的流量处理

配置基于 HTTP 或 HTTPS 的服务时,每个服务实例通常会一并部署 Envoy 代理。此 Envoy 代理由 Traffic Director 配置。它是服务网格数据层面的一部分,按如下方式处理流量。

Envoy 代理接收出站请求,并将请求的目标 IP 和端口与引用目标 HTTP 或 HTTPS 代理的每个转发规则中配置的 IP 和端口进行比较。如果找到匹配项,Envoy 代理会根据目标代理的相应网址映射评估请求。

使用目标 TCP 代理时的流量处理

配置基于 TCP 的服务时,每个服务实例通常会一并部署一个 Envoy 代理。此 Envoy 代理由 Traffic Director 配置。它是服务网格数据层面的一部分,按如下方式处理流量。

Envoy 代理接收出站请求,并将请求的目标 IP 和端口与引用目标 TCP 代理的每个转发规则中配置的 IP 和端口进行比较。每条转发规则都会将 TCP 流量路由到目标代理,后者指向默认后端服务,该后端服务会指定运行状况检查并确定相应的后端。

使用目标 gRPC 代理时的流量处理

配置基于 gRPC 的服务时,您的服务实例通常不会一并部署 Envoy 代理。相反,gRPC 库由 Traffic Director 配置。该库是服务网格数据层面的一部分,并按如下方式处理流量。

gRPC 库将 URI 中指定的 hostname[:port] 与目标 gRPC 代理引用的所有网址映射中的主机规则进行比较。如果找到匹配项,gRPC 库会根据与匹配主机规则关联的路径规则评估请求。

目标代理资源

要添加、删除、列出和获取有关目标代理的信息,可以使用 REST API 或 gcloud SDK。

但是,您可以使用以下 gcloud 命令获取有关目标代理的信息:

gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies ] list
gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies ] describe target-proxy-name

API

如需了解通过 REST API 使用目标代理时可用的属性和方法,请参阅以下页面:

Traffic Director 仅支持 TargetHttpsProxiesTargetHttpProxiesTargetTcpProxiesTargetGrpcProxies 资源。

gcloud SDK

对于 gcloud 命令行工具,请参阅以下页面:

后续步骤

如需了解如何部署 Traffic Director,请参阅 Traffic Director 部署指南文档