Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure 负载均衡器是传输控制协议(TCP)和用户数据报协议(UDP)流量的第 4 层负载均衡服务,用于在服务正常运行的实例之间分配传入请求。 负载均衡器提供高可用性和超低延迟的网络性能。
使用 Azure 时, 可靠性是共同的责任。 Azure 提供了一系列支持复原和恢复的功能。 你负责了解这些功能如何在你使用的所有服务中工作,并选择满足业务目标和运行时间目标所需的功能。
本文介绍如何增强负载均衡器的鲁棒性,以应对各种潜在的中断和问题,包括瞬态故障、可用区中断和区域中断。 它还突出显示了有关负载均衡器服务级别协议(SLA)的关键信息。
重要
整体解决方案的可靠性取决于后端实例(服务器)的配置,例如 Azure 虚拟机(VM)或负载均衡器将流量路由到的虚拟机规模集。
本文不介绍后端实例,但其可用性配置直接影响应用程序的复原能力。 查看 解决方案中 Azure 服务的可靠性指南 ,了解每个服务如何支持可靠性要求。 为后端实例配置高可用性和区域冗余时,可以为应用程序实现完全可靠性。
生产部署建议
Azure Well-Architected 框架提供有关可靠性、安全性、成本、作和性能的建议。 若要了解这些领域如何相互影响并有助于可靠的负载均衡器解决方案,请参阅 负载均衡器的体系结构最佳做法。
可靠性体系结构概述
负载均衡器可以是公共负载均衡器,也可以是内部负载均衡器。 公共负载均衡器可通过公共 IP 地址资源从 Internet 访问。 内部负载均衡器只能从虚拟网络内部和连接到虚拟网络的其他网络访问。
每个负载均衡器由多个组件组成:
接收流量的前端 IP 配置。 公共负载均衡器接收公共 IP 地址上的流量。 内部负载均衡器接收虚拟网络中 IP 地址上的流量。
包含可接收流量的后端实例集合的后端池,例如运行应用程序的单个 VM。
用于定义负载均衡器如何将流量从前端分发到后端池的负载均衡规则。
监视后端实例可用性的健康探测。
有关详细信息,请参阅 负载均衡器组件。
对于全局部署的解决方案,可以部署 全局负载均衡器,这是一种唯一类型的公共负载均衡器,用于在解决方案的不同区域部署之间路由流量。 全局负载均衡器提供单个任播 IP 地址,并根据客户端的邻近性和区域健康状况,将流量路由到最近的健康的区域负载均衡器。 有关详细信息,请参阅 对区域范围的故障的复原能力。
暂时性故障的复原能力
暂时性故障是指组件发生短暂的间歇性故障。 这些故障经常出现在云之类的分布式环境中,在运营过程中比较常见。 暂时性故障在短时间内自行纠正。 应用程序通常可以通过重试受影响的请求来处理暂时性故障,这一点很重要。
与任何云托管的 API、数据库和其他组件通信时,所有云托管的应用程序都应遵循 Azure 暂时性故障处理指南。 有关详细信息,请参阅 处理暂时性故障的建议。
使用负载均衡器时,请考虑以下最佳做法,以最大程度地降低影响应用程序的暂时性故障的风险:
实现重试逻辑。 客户端应为暂时性连接故障(包括指数退避策略)实施适当的重试机制。
配置具有容错的运行状况探测。 配置运行状况探测器以在快速检测故障的同时避免暂时性问题期间的误报。
监视 SNAT 端口分配。 对于出站连接,请监视源网络地址转换(SNAT)端口分配并配置出站规则,以防止由于端口耗尽而发生的暂时性连接故障。
应对可用区故障的弹性
可用性区域 是 Azure 区域内物理上独立的数据中心组。 当一个区域发生故障时,服务可以转移到其他可用区域之一。
可以通过配置每个创建的前端 IP 配置,将负载均衡器部署为 区域冗余。 区域冗余前端 IP 配置使用多个区域中的独立基础结构来同时为流量提供服务。 此配置可确保区域故障不会影响负载均衡器接收和分发流量的能力。
下图显示了一个区域冗余的公共负载均衡器,通过创建区域冗余的公共 IP 地址来配置该负载均衡器。
下图显示了使用类似区域冗余配置的内部负载均衡器。
注意
可以部署区域负载均衡器,但我们建议对所有工作负荷(包括部署到单个区域的工作负荷)使用区域冗余负载均衡器。 Azure 正在将所有公共 IP 地址和负载均衡器迁移到区域冗余配置。
在没有可用性区域的区域中,Azure 使用未配置区域的前端配置在 非区域 或 区域 配置中创建所有负载均衡器。 如果区域遇到服务中断,则非区域负载均衡器可能会遇到停机。
后端实例和可用性区域
后端实例的可用性区域配置独立于负载均衡器的前端 IP 配置运行。
若要跨区域分配后端实例,请根据其可靠性功能和体系结构要求配置相关服务。
注意
若要实现复原能力,请跨多个可用性区域分发后端实例。 如果所有后端实例都在单个区域中运行,则该区域中的服务中断会使应用程序不可用,即使使用区域冗余负载均衡器也是如此。
例如,当使用虚拟机时,生产工作负荷的常见设计方法是将多个可用区的虚拟机放置在第 1 区、第 2 区和第 3 区,以实现可用区复原能力。 对于负载均衡,可以创建区域冗余的负载均衡器,并将这些 VM 配置为负载均衡器中的后端实例。 无论其区域位置如何,负载均衡器的健康探测都会自动从轮换中删除不正常的 VM。
如果在同一可用性区域中部署 VM,则可以在负载均衡器上部署区域冗余的前端 IP 配置,如下图所示。
要求
区域支持: 可以将区域冗余负载均衡器部署到 支持可用性区域的任何区域。
成本
可用性区域配置不会更改 Azure 对负载均衡器计费的方式。 Azure 的计费基于您所配置的规则数量及处理的数据量,而不考虑区域配置。 有关详细信息,请参阅负载均衡器定价。
配置可用性区域支持
使用负载均衡器时,可以在前端 IP 配置上设置可用性区域支持。
使用可用性区域支持创建新的负载均衡器。
对于 公共负载均衡器,前端 IP 配置会自动采用与之关联的公共 IP 地址资源的可用性区域配置。 若要使前端 IP 配置区域冗余,请创建或选择区域冗余的公共 IP 地址。 默认情况下,Azure 将公共 IP 地址配置为区域冗余。 有关详细信息,请参阅 使用 Azure 门户创建公共负载均衡器以对 VM 进行负载均衡。
对于 内部负载均衡器,配置负载均衡器的前端 IP 地址时,请在前端 IP 配置上设置可用性区域支持类型。 有关详细信息,请参阅 使用 Azure 门户创建内部负载均衡器以对 VM 进行负载均衡。
更改现有负载均衡器的可用性区域配置。 若要更改现有负载均衡器的可用性区域配置,请替换前端 IP 配置。 可以使用此方法从区域配置迁移到区域冗余前端 IP 配置:
创建具有所需可用性区域配置的新前端 IP 配置。
对于 公共负载均衡器,请创建使用所需可用性区域配置的新公共 IP 地址。 然后重新配置负载均衡器,以添加引用该公共 IP 地址的前端 IP 配置。
对于内部负载均衡器,请重新配置,添加一个新的前端 IP 配置,并设置所需的可用性配置。 此步骤从子网中分配新的专用 IP 地址。
重新配置负载均衡规则以使用新的前端 IP 配置。
重要
此作要求重新配置客户端以将流量发送到新的前端 IP 地址。 此过程可能需要停机,具体取决于客户端。
删除旧的前端 IP 配置。
所有区域正常时的行为
本部分介绍当负载均衡器使用区域冗余前端 IP 配置和所有可用性区域正常运行时会发生什么情况。
区域之间的流量路由: 负载均衡可能发生在任何可用性区域中。 负载均衡器将流量发送到后端池中指定的正常后端实例,而不考虑哪个可用性区域包含后端实例。
区域之间的数据复制: 负载均衡器充当不存储或复制应用程序数据的网络直通服务。 即使在负载均衡器上设置了 会话持久性 ,负载均衡器也不会存储任何状态。 会话持久性调整哈希过程以将请求路由到同一后端实例,但负载均衡器不能保证会话持久性。 当后端池发生更改时,负载均衡器会重新计算客户端请求的分发,并且不会存储或同步状态。
该服务通过跨区域同步复制来维护其配置状态,这可确保所有区域的负载均衡规则、运行状况探测配置和后端池成员身份的即时一致性。
区域故障期间的行为
本部分介绍当负载均衡器使用区域冗余前端 IP 配置和可用性区域中断时会发生什么情况。
检测和响应: Azure 平台负责检测可用性区域中的故障并做出响应。 无需执行任何操作即可启动区域故障转移。
- 通知:Azure 不会在区域关闭时自动通知你。 但是,可以使用 Azure 资源运行状况 监视单个资源的运行状况,并且可以设置 资源运行状况警报 来通知问题。 还可以使用 Azure 服务运行状况 来了解服务的总体运行状况,包括任何区域故障,还可以设置 服务运行状况警报 来通知问题。
活动请求: 当某个区域发生故障时,区域中的任何现有 TCP 和 UDP 流都会自动重置,并且客户端必须重试这些流。 客户端应实现足够的 暂时性故障处理,包括自动重试。
预期数据丢失: 负载均衡器是无状态网络服务,因此它不会存储应用程序数据,也不会在负载均衡器层发生数据丢失。
预期的停机时间: 区域冗余负载均衡器不会停机,因为负载均衡器继续从正常运行的区域工作。
如果故障影响区域中的计算服务,则受影响区域中的任何 VM 或其他资源都可能不可用。 负载均衡器的运行状况探测会检测这些故障,并根据负载均衡算法和后端实例的运行状况将流量路由到另一个区域中的备用实例。
流量重新路由: 负载均衡器继续从正常的区域运行。 负载均衡器在区域故障期间维护相同的前端 IP 地址。 此行为意味着无需应用域名系统(DNS)更新或重新配置客户端。 Azure 平台通过剩余的正常区域建立新的客户端连接。
区域恢复
当可用性区域恢复时,负载均衡器会自动恢复正常作。 区域冗余前端会自动开始为来自恢复区域的流量以及其他正在运行的区域提供服务。 从恢复区的健康探测器继续评估后端实例。
如果区域故障影响了该区域中的计算服务,负载均衡器会在后端实例恢复并通过运行状况检查后,自动将它们添加到正常的后端池。 根据负载均衡算法和后端实例的运行状况,流量分布在所有可用区域中重新平衡。
测试区域故障
Azure 平台管理流量路由、区域关闭响应和恢复,因此无需启动或验证可用性区域故障过程。
对区域范围的故障的复原能力
公共和内部负载均衡器部署到单个 Azure 区域。 如果区域变得不可用,则该区域中的负载均衡器也变得不可用。 负载均衡器通过全局负载均衡器提供原生的多区域支持,支持在 Azure 区域间进行负载均衡。 您还可以部署其他负载均衡服务,以便在 Azure 区域之间进行路由和故障转移。
全局负载均衡器
全局负载均衡器提供一个静态任意广播 IP 地址,该地址根据客户端邻近度和区域运行状况自动将流量路由到最佳区域部署。 全局负载均衡器可提高应用程序的可靠性和性能。
使用全局负载均衡器,可以在不同的区域中部署多个公共负载均衡器,全局负载均衡器充当全局前端。 如果一个区域中的后端服务器出现问题,则流量会自动切换到正常区域,而不会发生 DNS 更改,因为任何广播 IP 地址保持不变,并将流量路由到另一个区域。
有关详细信息,请参阅 全局负载均衡器。
用于复原的自定义多区域解决方案
Azure 提供了一系列符合不同要求的负载均衡服务。 选择满足复原要求的负载均衡器,并符合应用程序类型。 有关详细信息,请参阅 负载均衡选项。
服务级别协议
Azure 服务的服务级别协议(SLA)描述了每个服务的预期可用性,以及解决方案为实现该可用性预期而必须满足的条件。 有关详细信息,请参阅 联机服务的 SLA。
配置至少两个运行正常的虚拟机为后端实例时,将适用负载均衡器 SLA。 服务水平协议(SLA)不包括由于 SNAT 端口耗尽或阻止流量的网络安全组(NSG)导致的停机时间。