API7 网关多可用区部署
跨多个可用区(AZ)部署 API7 网关可以提高可用性,避免单个可用区故障导致 API 服务整体中断。本页介绍多可用区部署架构及其配置。
多可用区架构
在多可用区部署中,控制面和数据面组件分布在同一区域内的不同可用区。
- 控制面:通常部署在单个主可用区中,但如果你的基础设施支持,可以扩展到多个可用区。
- 数据面:部署在多个可用区(例如,AZ-a、AZ-b、AZ-c)中,以确保在一个可用区不可用时持续处理流量。
- 负载均衡器:跨可用区负载均衡器将传入流量分发到所有可用区中的所有健康 DP 节点。
多可用区部署模式
典型的多可用区部署涉及以下组件:
- 区域:特定地理区域(例如,
us-east-1)。 - 可用区:区域内的独立故障域(例如,
us-east-1a、us-east-1b)。 - 跨可用区网络:使用低延迟、高带宽网络连接不同可用区中的 CP 和 DP 节点。
故障域隔离
将 DP 节点分布在多个可用区可以隔离故障域。如果某个可用区因电源或网络故障而中断,负载均衡器会停止向该可用区中的 DP 节点发送流量,并将流量重新分配到其他可用区中的健康节点。
多可用区配置
数据面节点
将相同的数据面配置部署到每个可用区中的每个节点。在 deployment.etcd.host 中的每个可用区列出一个 DP 管理器端点,以便每个 DP 节点在本地节点无法访问时可以故障转移到另一个可用区中的控制面:
config.yaml
deployment:
role: traditional
role_traditional:
config_provider: etcd
etcd:
host:
- "https://dp-manager.az-a.internal:7943"
- "https://dp-manager.az-b.internal:7943"
- "https://dp-manager.az-c.internal:7943"
prefix: /apisix
timeout: 30
每个条目必须指向 DP Manager TLS 监听器(默认端口为 7943)。DP 会在启动时依次尝试列表中的地址,并在当前地址不健康时连接到下一个地址。有关完整的字段说明,请参见 API7 网关数据面配置参考。
负载均衡器
配置负载均衡器以执行跨可用区健康检查和负载均衡。
- 健康检查:使用 DP 状态 API(端口
7085,端点为/status或/status/ready)监控节点状态。 - 跨可用区负载均衡:启用跨可用区负载均衡,以在所有可用区之间均匀分配流量。