你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 负载均衡器最佳做法

本文讨论了一系列部署 Azure 负载均衡器的最佳做法。 这些最佳实践衍生自我们的 Azure 网络经验和客户的经验。

对于每项最佳实践,本文将说明:

  • 最佳实践是什么
  • 为何要启用该最佳实践
  • 如果未能遵循最佳做法,可能会发生什么情况
  • 如何学习遵循此最佳做法

这些最佳做法以共识以及撰写本文时存在的 Azure 平台功能和特性集为基础。

体系结构最佳做法

以下体系结构指南有助于确保 Azure 负载均衡器部署的可靠性。 它包括有关可用区冗余部署、后端池冗余和全局负载均衡器部署的最佳做法。 此外还包括网关负载均衡器的可靠性(在使用 NVA 时,建议使用网关负载均衡器,而不是双重负载均衡器设置)。

可靠性最佳做法

我们建议使用以下最佳做法来确保 Azure 负载均衡器部署的可靠性。

可用区冗余部署

可用区冗余通过保护数据路径免受可用区故障的影响,提供最佳复原能力。 负载均衡器的可用性区域选择与其前端 IP 的区域选择同义。 对于公共负载均衡器,如果负载均衡器前端中的公共 IP 是可用区冗余的,则负载均衡器也是可用区冗余的。

  • 在支持可用区的区域中部署负载均衡器,并在创建用于前端 IP 配置的新公共 IP 地址时启用可用区冗余。
  • 公共 IP 地址不能更改为可用区冗余,但默认情况下,我们会将所有非可用区型标准公共 IP 更新为可用区冗余。 有关详细信息,请访问以下 Microsoft Azure 博客:Azure 公共 IP 现默认为可用区冗余 | Microsoft Azure 博客。 若要查看默认支持可用区冗余标准公共 IP 的最新区域列表,请参阅 Azure 中的公共 IP 地址
  • 如果无法部署为可用区冗余,下一个选项是部署可用区负载均衡器。
  • 当后端集中在特定可用区中时,建议使用可用区型前端。 但我们建议跨多个可用区部署后端池成员,以享受可用区冗余的优势。
  • 如果要将现有部署迁移到可用区部署或可用区冗余部署,请参阅以下文档:将负载均衡器迁移到可用区支持

后端池中的冗余

确保后端池至少包含两个实例。 如果后端池只有一个实例且运行不正常,则发送到后端池的所有流量都将由于缺乏冗余而失败。 而且,只有在每个后端池至少有 2 个正常的后端池实例时,才能支持标准负载均衡器 SLA。 有关详细信息,请访问 SLA 文档

部署全局负载均衡器

标准负载均衡器支持实现跨区域负载均衡,通过将全局负载均衡器链接到现有区域性负载均衡器来实现区域性冗余。 使用全局负载均衡器时,如果一个区域出现故障,则会将流量路由到下一个距离最近的正常区域性负载均衡器。 有关更多详细信息,请访问全局负载均衡器文档

有关详细信息,请参阅 Azure 负载均衡器可靠性文档

网关负载均衡器的可靠性

建议使用以下最佳做法来确保网关负载均衡器部署的可靠性。

将网关负载均衡器链接到标准公共负载均衡器

建议将网关负载均衡器链接到标准公共负载均衡器。 此配置将在 NVA 和应用程序层上提供高可用性和冗余。 有关详细信息,请参阅教程:创建网关负载均衡器

在使用 NVA 时使用网关负载均衡器,而不是双重负载均衡器设置。

在北-南流量场景中,建议将网关负载均衡器与合作伙伴网络虚拟设备 (NVA) 配合使用。 这样更容易部署,因为网关负载均衡器保持了流粘性和流对称性,不需要额外的配置,例如用户定义的路由 (UDR)。 这样管理起来也更容易,因为可以轻松添加和移除 NVA。 有关详细信息,请参阅网关负载均衡器文档

配置指南

以下配置指南是配置 Azure 负载均衡器部署的最佳做法。

创建网络安全组 (NSG)

若要显式允许入站流量,应创建网络安全组 (NSG)。 NSG 必须在 VM 的子网或网络适配卡 (NIC) 上创建,否则不会与标准外部负载均衡器建立入站连接。 有关详细信息,请参阅创建、更改或删除 Azure 网络安全组

取消阻止 168.63.129.16 IP 地址

确保任何 Azure 网络安全组和本地防火墙策略都不会阻止 168.63.129.16 IP 地址。 此 IP 地址使 Azure 负载均衡器的运行状况探测能够确定 VM 的运行状况状态。 如果不允许,运行状况探测会失败,因为它无法访问实例,并且会将实例标记为关闭。 有关详细信息,请参阅 Azure 负载均衡器运行状况探测什么是 IP 地址 168.63.129.16?

将出站规则与手动端口分配配合使用

将出站规则与手动端口分配配合使用,而不使用默认端口分配,以防止 SNAT 耗尽或连接失败。 默认端口分配会自动分配保守数量的端口,这可能会导致 SNAT 端口耗尽的风险较高。 手动端口分配有助于最大程度地增加后端池中每个实例可用的 SNAT 端口数,这有助于防止由于端口重新分配而影响连接。 手动端口分配有两个选项,分别为“每个实例的端口数”和“后端实例数上限”。 若要了解这两个选项的注意事项,请参阅出站连接的源网络地址转换 (SNAT)

检查分布模式

Azure 负载均衡器默认使用基于五元组哈希的分布模式,还可以使用双元组或三元组哈希提供会话持久性。 请考虑部署是否可因会话持久性(也称为“会话亲和性”)而受益,即来自同一客户端 IP 的连接或相同的客户端 IP 和协议将转到后端池中的同一后端实例。 另外需要考虑的是,启用会话亲和性可能会导致负载分布不均,因为大多数连接来自同一客户端 IP,或者相同的客户端 IP 和协议将被发送到同一后端 VM。 有关 Azure 负载均衡器的分布模式的详细信息,请参阅 Azure 负载均衡器分布模式

启用 TCP 重置

如果在负载均衡器上启用 TCP 重置,则会在空闲超时时向客户端终结点和服务器终结点发送双向 TCP 重置数据包,以通知应用程序终结点连接超时且不再可用。 如果不启用 TCP 重置,负载均衡器会在达到流空闲超时时删除流,而不进行任何提示。 如果看到连接超时,还可以增加空闲超时和/或使用 TCP keepalive 机制。有关 TCP 重置、空闲超时和 TCP keepalive 的详细信息,请访问 Azure 中的负载均衡器 TCP 重置和空闲超时

在设置浮动 IP 时配置环回接口

如果启用浮动 IP,请确保来宾 OS 中有一个环回接口,且该接口配置了负载均衡器的前端 IP 地址。 如果你想在多个规则之间重复使用后端端口,则需要启用浮动 IP。 端口重用的一些示例用例包括高可用性群集功能和网络虚拟设备。 有关详细信息,请参阅 Azure 负载均衡器浮动 IP 配置

实现网关负载均衡器配置最佳做法

在两个不同的隧道接口上分离受信任的流量和不受信任的流量:针对不受信任/尚未检查或托管的流量,使用隧道接口类型“外部”;针对受信任/经过检查的流量,使用隧道接口类型“内部”。 作为一种安全防护最佳做法,这可确保将受信任的流量和不受信任的流量进行隔离,并允许进行更精细的流量控制和故障排除。

确保 NVA MTU 限制至少增加到 1550,但对于使用巨帧的应用场景,建议的上限为 4000。 如果不增加 MTU 限制,则可能会因 VXLAN 标头生成的其他数据包较大而出现丢包问题。

停用公告

除了对 Azure 负载均衡器的新改进和更新之外,还弃用了一些功能。 请务必及时更新并确保进行必要的更改,以避免任何潜在的服务中断。 有关停用公告的完整列表,请参阅“Azure 更新”页面,并筛选“产品”为“负载均衡器”且“更新类型”为“停用”的公告。

使用或升级到标准负载均衡器

基本负载均衡器将于 2025 年 9 月 30 日停用,客户应在此之前从基本负载均衡器升级到标准负载均衡器。 标准负载均衡器将提供显著改进,包括高性能、超低延迟、默认安全性以及可用性为 99.99% 的 SLA。

请勿使用默认出站访问

今后,请勿使用默认出站访问,并确保所有 VM 都具有定义的显式出站方法。 这是建议的做法,有助于提高安全性,并更好地控制 VM 如何连接到 Internet。 默认出站访问将于 2025 年 9 月 30 日停用,在此日期之后创建的 VM 必须使用以下出站解决方案之一来与 Internet 通信:

  • 将 NAT GW 关联到子网
  • 使用负载均衡器的一个或多个前端 IP 通过出站规则进行出站
  • 将实例级公共 IP 地址分配给 VM

后续步骤