我知道我们不能在 Azure 中使用 NLB,但是我需要通过将它们置于虚拟内部 IP 地址(类似于 NLB)后面来实现两台服务器的负载平衡。
通常情况下,我可以使用 Azure 负载均衡器,但两台服务器位于两个不同的区域 - 并且仅当您的服务器位于同一区域时 Azure 负载均衡器才有效。
Traffic Manager 也无法工作,因为它使用公共 DNS - 我希望所有往返于这些服务器的流量都是内部的。
我有什么选择?
答案1
您列出了平衡 TCP 流、Azure 负载均衡器和流量管理器的选项。这是一篇博客文章,解释 Azure 负载平衡产品差异。ALB 基于第 4 层流,TM 基于 DNS。
如果维护相同的 IP 很重要(为什么?),请在 Azure 负载均衡器后面的同一区域中使用多个主机。如果您的服务级别目标未得到满足,并且 DNS 故障转移对您有用,请考虑通过流量管理器实现到另一个区域的高可用性。
云区域通常共享很少的故障域。这自然会形成一个管理边界,限制您的 VPC 子网可以延伸到多远。即使您可以通过对等或 VPN 进行区域间流量,一个简单的解决方案是将服务 IP 限制在一个区域内。
答案2
您需要使用第三方产品,微软正在开发该功能,但尚未公布预计到达时间。 https://feedback.azure.com/forums/217313-networking/suggestions/35251351-support-communicating-to-the-frontend-ip-address-o
VNet 对等互连文档包含以下约束:一个虚拟网络中的资源无法与全局对等互连虚拟网络中 Azure 内部负载均衡器的前端 IP 地址通信。负载均衡器及其通信的资源必须位于同一区域。在需要资源访问另一个区域中的负载均衡应用程序的情况下,需要第三方负载均衡器。
我自己没有使用过任何产品,但似乎有一些产品可以达到这个效果。例如: https://support.kemptechnologies.com/hc/en-us/articles/206870686-Using-GEO-Load-Balancing-In-Azure
GSLB 附加包(或 GEO 负载平衡)是 LoadMaster 的一项附加功能,可充当多个站点的 DNS 响应器。GEO 能够超越单个数据中心,实现多数据中心高可用性 (HA)