如何设置 zone 可感知路由?

在源服务(“cluster_a”)和目标服务(“cluster_b”)之间启用区域感知路由需要执行几个步骤。

源服务上的 Envoy 配置

本节介绍与源服务一起运行的 Envoy 的具体配置。要求如下:

  • Envoy 必须使用 --service-zone 选项启动,该选项为当前主机定义区域。

  • 源和目的地集群的定义都必须具有 sds 类型。

  • 必须将 local_cluster_name 设置为源集群。

    以下配置中仅列出了集群管理器的主要部分。

  1. {
  2. "sds": "{...}",
  3. "local_cluster_name": "cluster_a",
  4. "clusters": [
  5. {
  6. "name": "cluster_a",
  7. "type": "sds",
  8. },
  9. {
  10. "name": "cluster_b",
  11. "type": "sds"
  12. }
  13. ]
  14. }

目的地服务上的 Envoy 配置

没有必要与目的地服务并排运行 Envoy,但重要的是目的地集群中的每台主机都注册源服务 Envoy 查询的发现服务。区域信息必须作为该响应的一部分提供。

下面的应答中只列出了与区域相关的数据。

  1. {
  2. "tags": {
  3. "az": "us-east-1d"
  4. }
  5. }

基础设施搭建

上述配置对于区域感知路由是必需的,但是在不执行区域感知路由时存在某些情况。

验证步骤

  • 使用每区域 Envoy 统计信息来监控跨区域流量。