配置 Envoy 引导特性

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

  • 在哪里可以找到 Cloud Service Mesh (trafficdirector.googleapis.com)
  • 客户端应请求配置的 VPC 网络名称
  • 其他可选信息,例如是否启用日志记录

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

仅支持 xDS v3。如果您使用的是 xDS v2,请按照从 xDS v2 迁移到 xDS v3 中的说明迁移到 xDS v3。

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

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

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

请求配置的 Google Cloud VPC 网络名称(这是 Google Cloud API 的转发规则中引用的 VPC 网络名称)。 使用 xDS v3 API 时,您必须提供广告网络名称。

不建议将此值留空。不保证未来的版本支持空值。

TRAFFICDIRECTOR_GCP_PROJECT_NUMBER 一串数字。例如 123456789 用于配置 Cloud Service Mesh 资源的 Google Cloud 项目。 这是您的项目的数字标识符(例如 111222333444)。

您可以使用 gcloud projects list 命令或查看 Google Cloud 控制台的项目信息部分,获取所有项目及其对应项目编号的列表。使用 xDS v3 API 时,您必须提供项目编号。

手动 Envoy 部署可选的引导配置

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

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

拦截侦听器的端口号。发往在 Cloud Service Mesh 中配置的服务的流量必须重定向到此端口。

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

TRAFFICDIRECTOR_ACCESS_LOG_PATH 访问日志文件的路径,以字符串表示。例如:“/var/log/sidecar/access.log” 此参数的值用于文件访问日志配置,由 Cloud Service Mesh 与其他参数一起发送到代理。所有传入和传出请求都记录在此文件中。如需了解详情,请参阅 Envoy 代理的文件访问日志文档。
TRAFFICDIRECTOR_ENABLE_TRACING 布尔值,以字符串表示;例如 true 启用边车代理以生成分布式跟踪信息。如果设置为 trueEnvoy 跟踪参数将由 Cloud Service Mesh 在边车代理中编程,并且 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"