配置 Envoy 引导特性

当支持您的服务网格的 Envoy 代理和 gRPC 库初始化时,它们需要连接到 Traffic Director 并成为 Traffic Director 客户端。要建立此连接,客户端需要使用配置信息来引导,例如:

  • 如何查找 Traffic Director (trafficdirector.googleapis.com)
  • 客户端应请求配置的 VPC 网络名称
  • 其他可选信息,例如是否启用日志记录

本文档介绍将 Envoy 与 Traffic Director 结合使用时如何提供引导信息。用于提供引导配置的方法取决于您部署服务的方式:

手动 Envoy 部署必需的引导配置

下表包含所有必需的引导配置属性。

属性 说明
TRAFFICDIRECTOR_NETWORK_NAME 一个字符串。例如:默认值。

请求配置的 Google Cloud VPC 网络名称(这是 Google Cloud API 的转发规则中引用的 VPC 网络名称)。

  • 使用 xDS v2 API 时,我们建议您设置网络名称。如果将此值留空,Traffic Director 会尝试选择将请求从边车代理发送至 directdirector.googleapis.com 所通过的 VPC 网络的配置。
  • 使用 xDS v3 API 时,您必须提供网络名称。
  • 不建议将此值留空。不保证未来的版本支持空值。

    TRAFFICDIRECTOR_GCP_PROJECT_NUMBER 一串数字。例如 123456789 配置了 Traffic Director 资源的 Google Cloud 项目。这是您的项目的数字标识符(例如 111222333444)。

    您可以使用 gcloud projects list 命令或查看 Google Cloud Console 的项目信息部分,获取所有项目及其对应项目编号的列表。

  • 使用 xDS v2 API 时,我们建议您设置项目编号。如果您将该字段留空,Traffic Director 会尝试提取与服务账号凭据关联的 Google Cloud 项目的配置。我们不保证未来的版本支持空值。
  • 使用 xDS v3 API 时,您必须提供项目编号。
  • 手动 Envoy 部署可选的引导配置

    下表包含所有可选的引导配置属性。

    属性 说明
    TRAFFICDIRECTOR_INTERCEPTION_PORT 0-65535 范围内的整数

    拦截侦听器的端口号。发往 Traffic Director 中所配置的服务的流量必须重定向到此端口。

    如果将此值留空,则 Traffic Director 不会配置拦截侦听器。如果您的配置依赖于出站流量拦截,则缺少侦听器将破坏流量流动。对于仅须拦截入站流量的中间代理,此字段不是必需的。

    TRAFFICDIRECTOR_ACCESS_LOG_PATH 访问日志文件的路径,以字符串表示。例如:“/var/log/sidecar/access.log” 此参数的值用作文件访问日志配置,由 Traffic Director 连同其他参数一起发送给代理。所有传入和传出请求都记录在此文件中。如需了解详情,请参阅 Envoy 代理的文件访问日志文档。
    TRAFFICDIRECTOR_ENABLE_TRACING 布尔值,以字符串表示;例如 true 启用边车代理以生成分布式跟踪信息。如果设置为 trueEnvoy 跟踪参数 将由 Traffic Director 在边车代理中进行编程,并将 generate_request_id 设为“true”。

    以下 yaml 格式的示例展示了如何在 Envoy 代理引导配置的节点元数据部分中配置受支持的属性:

    node:
      metadata:
        TRAFFICDIRECTOR_INTERCEPTION_PORT: "15001"
        TRAFFICDIRECTOR_NETWORK_NAME: "default"
        TRAFFICDIRECTOR_GCP_PROJECT_NUMBER: "111222333444"
        TRAFFICDIRECTOR_ACCESS_LOG_PATH: "/tmp/sidecar/access.log"
        TRAFFICDIRECTOR_ENABLE_TRACING: "true"