配置 Envoy 引导特性

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

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

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

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

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

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

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

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

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

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

  • 使用 xDS v2 API 时,我们建议您设置项目编号。如果您将此字段留空,Cloud Service Mesh 会尝试提取与服务帐号凭据关联的 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 启用边车代理以生成分布式跟踪信息。如果设置为 true,则 Envoy 跟踪参数由 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"