配置 Envoy 引导特性
当支持您的服务网格的 Envoy 代理和 gRPC 库初始化时,它们需要连接到 Cloud Service Mesh 并成为 Cloud Service Mesh 客户端。要建立此连接,客户端需要使用配置信息来引导,例如:
- Cloud Service Mesh (
trafficdirector.googleapis.com
) 的所在位置 - 客户端应请求配置的 VPC 网络名称
- 其他可选信息,例如是否启用日志记录
本文档介绍将 Envoy 与 Cloud Service Mesh 结合使用时如何提供引导信息。用于提供引导配置的方法取决于您部署服务的方式:
- 对于通过虚拟机自动部署的 Envoy Sidecar 代理,请参阅通过虚拟机进行自动 Envoy 部署的设置选项,了解创建实例模板时的参数等效项。
- 对于通过 GKE pod 自动部署的 Envoy Sidecar 代理,请将以下受支持的参数添加到 Sidecar 注入器的
ConfigMap
的proxyMetadata
中。如需详细了解如何配置必需属性,请参阅使用自动 Envoy 注入功能设置 Google Kubernetes Engine Pod。 - 对于手动 Envoy 部署,请将以下受支持的参数添加到代理的引导节点元数据配置。
仅支持 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 |
启用 Sidecar 代理以生成分布式跟踪信息。如果设置为 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"