地域负载均衡

本系列任务演示如何在 Istio 中配置地域负载均衡。

一个 地域 定义了 workload instance 在您的网格中的地理位置。这三个元素定义了一个地域:

  • 地区:代表较大的地理区域,例如 us-east。一个地区通常包含许多可用区。 在 Kubernetes 中,标签 topology.kubernetes.io/region 决定了节点所在的地区。

  • 区域:区域内的一组计算资源。通过在区域内的多个区域中运行服务,可以在区域内的区域之间进行故障转移, 同时保持最终用户的数据地域性。在 Kubernetes 中, 标签 topology.kubernetes.io/zone 决定了节点所在的区域。

  • 分区:允许管理员进一步细分区域,以实现更细粒度的控制,例如“相同机架”。 Kubernetes 中不存在分区的概念。所以 Istio 引入了自定义节点标签 topology.istio.io/subzone 来定义分区。

如果您使用托管的 Kubernetes 服务,则云提供商应为您配置地区和区域标签。 如果您正在运行自己的 Kubernetes 集群,则需要将这些标签添加到您的节点上。

地域是分层的,按匹配顺序排列:

  1. 地区

  2. 区域

  3. 分区

这意味着,在 foo 地区的 bar 区域中运行 Pod 不会 被视为在 baz 地区的 bar 区域中运行的 Pod。

Istio 使用地域信息来控制负载均衡行为。参照本系列的某个任务,为您的网格配置地域负载均衡。