面向 Azure Internet 的多区域负载均衡器

Azure Internet Facing Multi Region Load Balancer

我正在创建一个多区域 AlwaysOn Sql 可用性组。我在东部有 2 个虚拟机,在西部有 1 个虚拟机。我需要使用面向 public 的负载均衡器对它们进行负载均衡。是否可以使用存在于不同 VNET 和不同数据中心的 VM 创建面向 Internet 的负载均衡器?

两个网络之间有一个 VPN 隧道。这与 public 负载平衡器无关,但以防万一有人问。

3 年后更新:

你永远不应该真正创造这样的东西。如果你绝对这样做,你可以,但这是可怕的可怕做法。

Azure Traffic Manager 应该能够跨区域执行您需要的操作。 https://azure.microsoft.com/en-us/documentation/articles/traffic-manager-overview/

所以我已经开发了解决方案并且我已经成功地测试了它。有两个选项:

确保您在两个区域都有 VNET。确保位于不同区域的两个 VNET 之间存在 VPN 隧道。接下来像往常一样创建集群和可用性组。然后在您的两个区域附加单独的面向 Internet 的负载均衡器。因此,如果您在东部有 2 个节点,在西部有 1 个节点,那么您的东部面向互联网的负载均衡器将在其后面有 2 个虚拟机,而西部有一个不同的负载均衡器,只有一个。然后,在集群上为 public IP 地址创建侦听器。确保面向 Internet 的负载均衡器的 public IP 地址与侦听器上的正确子网相关联,否则您将遇到问题。这是您的选择发挥作用的地方

选项 1:在您的连接字符串中指定故障转移伙伴示例

DataSource=mydb.mydomain.com;FailoverPartner=mydb2.mydomain.com;MultiSubnetFailover=true; I may have mistype this connection, but this is the idea. you can lookup proper syntax

选项 2:不指定故障转移合作伙伴,如果发生区域故障转移,请使用新的连接字符串重新部署您的应用。 (这是云人,如果你没有使用像 octopus deploy 这样的工具,你就错了)

我选择了选项 2,因为我们的灾难恢复故障转移方法已经非常复杂。

我希望这对其他人有帮助!