关于网络负载均衡器
您可以使用 IBM Cloud® Network Load Balancer for VPC (NLB) 在 VPC 同一区域内的多个服务器实例之间分配流量。
NLB 可以接受所有三个可用性专区中的成员,但 NLB 本身位于一个特定专区中。 有关更多信息,请参阅 多专区支持。
可以为每个客户分配端口,但在 VP 网关级别没有端口实施。
网络负载均衡器的类型
如 Load Balancers for VPC 概述 中所述,提供了许多类型的 NLB:
-
公共-公共负载均衡器是具有向 DNS 注册的公共可访问 IP 地址的负载均衡器。
-
专用-专用负载均衡器仅可从 VPC 网络中访问,其中客户机位于同一 VPC 中或具有可达性 (例如,通过 Direct Link和/或 Transit Gateway)。 对于专用负载均衡器,您必须具有没有为子网配置定制路由的专用子网。
-
启用路由模式的专用- 启用路由模式的专用 NLB 支持将虚拟网络功能 (VNF) 设备作为后端目标。 它们执行直接路由,无需任何 NAT,从而使 VNF 设备能够检查数据包。
系统同时支持对称和非对称流量,每个区域中的多个采用路由模式的私有 NLB 均可随时通过 加权转发 异步接收流量。 如需了解更多信息,请参阅《 创建采用路由模式的网络负载均衡器 》。
-
专用路径-服务提供者使用专用路径 NLB 将 IBM Cloud 与 IBM Cloud 专用网络上的第三方 VPC 托管服务安全连接。 当您使用 专用路径服务 将网络流量保持在专用路径上时,就需要使用专用路径 NLB,因为专用路径永远不会与互联网相交。 有关更多信息,请参阅 专用路径解决方案指南。
专用路径 NLB 只能与专用路径服务一起使用。
入门
要开始使用网络负载均衡器,请执行以下步骤:
- 查看 网络负载平衡器的已知问题。
- 遵循特定 NLB 的指示信息:
负载均衡方法
有三种负载均衡方法可用于在后端应用程序服务器之间分配流量: 循环法,加权循环法和最少连接数。
最小连接数
通过此方法,在特定时间提供最少连接数的后端服务器实例将接收下一个客户机连接。
专用路径 NLB 不支持最少连接方法。
循环法
循环法是缺省负载均衡方法。 采用此方法,负载均衡器会以轮询方式将传入的客户端连接转发到后端服务器。 因此,所有后端服务器大概会接收到相等数目的客户机连接。
加权转发
加权转发仅在采用路由模式的私有 NLB 上受支持。
在加权转发中,NLB 使用 IP 哈希算法,根据各目标被分配的权重将数据包分发至各目标。 由于加权转发是无状态的,因此 NLB 不维护连接状态。 相反,每个数据包都会根据其报头进行独立评估,并根据当前的哈希结果和配置的权重进行转发。 因此,即使不存在现有的连接状态,流量也会被接受并转发。
此行为支持非对称路由场景,包括同一区域内的流量流向不对称的部署情况,例如使用公共IP地址范围时。 另一种受支持的场景是多区域部署,在此场景下,配置了“weighted_forwarding”池算法的私有 NLB 可以在任何区域异步接收流量。 对于对称流量流,NLB 仍会像其他池算法一样提供基于确定性哈希的转发,这使得加权转发适用于任何路由模式的 NLB 部署。
如果由于某个区域状态异常或已无任何健康后端成员,导致路由模式的 NLB 状态变为不健康,则该 NLB 会自动撤回其关联的 VPC 入站路由通告。 随后,流量将被重定向到健康区域中处于正常运行状态的路线模式 NLB。
例如,假设有一个采用路由模式的私有 NLB,其中有两个状态正常的后端成员:服务器 A 的权重为 8,服务器 B 的权重为 2。 在1,000个传入数据包中,大约有800个数据包被转发到服务器A,200个数据包被转发到服务器B。但由于加权转发是无状态的,因此NLB不会维护连接状态。 每个数据包都会根据数据包头信息进行独立评估,并根据当前的哈希结果和配置的权重进行转发。 这意味着,属于同一流量流的数据包即使通过不同的路由模式
NLB 到达和返回,也能成功转发,即使实际观察到的分布与配置的权重比不一致。
这种行为支持非对称路由场景。 如需了解更多信息,请 参阅用例 8:利用非对称路由实现多区域高可用性。
加权循环法
采用这种方法,负载均衡器会根据分配给各后端服务器的权重比例,将传入的客户端连接转发至这些服务器。 每个服务器被分配了一个默认权重 50,该权重可自定义为 0 - 100 范围内的任意值。
例如,如果应用服务器 A、B 和 C 的权重分别为 60、60 和 30,那么服务器 A 和 B 接收的连接数相等,而服务器 C 接收的连接数则是前两者的二分之一。
服务器权重值仅适用于加权循环法。 将使用循环法和最小连接负载均衡方法来忽略它们。
将服务器的权重设置为 0,意味着不会将新的连接转发到该服务器,但现有的流量仍将继续流经该服务器。 使用权重 0 有助于逐步关闭服务器,并将其从服务轮换中移除。
前端侦听器和后端池
前端侦听器是负载均衡器的应用程序端口,用于接收入局请求,而后端池是负载均衡器背后的应用程序服务器。 您可以定义最多 10 个前端监听器,并将它们映射到后端应用服务器上的后端连接池。 对于公共 NLB,分配给负载平衡器的 FQDN 和前端监听器端口都会暴露在互联网上。 在这些端口上会接收入局用户请求。 TCP 和 UDP 是前端监听器和后端池的支持协议。
您可以将最多 50 个虚拟服务器实例附加到一个后端池中。 流量将发送到其指定数据端口上的每个实例。 该数据端口不必与前端监听端口相同。
后端池故障安全策略
在负载平衡器中编辑后端池时,可以指定以下其中一种故障安全策略操作:
- 转发:- 负载平衡器将请求路由到指定的备份池。 这就为另一组应用服务器提供了一条简洁的故障转移路径。 您必须配置好现有的备份池,并准备好接收流量。
- 绕过:- 负载平衡器直接向成员的目标 IP 地址发送请求,完全绕过负载平衡器。 该选项通常用于特定的网络设置,如网络负载平衡器和虚拟网络功能(VNF)设备。
- 丢弃:- 负载平衡器丢弃所有传入请求,客户端不会收到任何响应。
您可以从适用的备份池列表中选择故障安全目标。
故障安全目标池要求(如果行动为前进):
- 必须属于同一个负载平衡器
- 必须具有相同或兼容的协议( TCP 只与 TCP 兼容,但 HTTP 和 HTTPS 的任何组合都是兼容的)
最大连接数
网络负载平衡器没有规定默认连接数或最大连接数。 并发连接总数取决于分配资源和网络吞吐量等因素。
网络负载均衡器的 VPC 表示
图 1 显示了典型网络负载均衡器设置的 VPC 表示。 NLB 是在 VPC 子网上供应的。 要在 NLB 上配置网络数据路径,必须创建侦听器,池和至少一个成员。 侦听器 是 NLB 侦听客户请求的前端端口。 这些请求会被转发给与该监听器关联的池中的目标。 池 是一组目标,用于分发进入特定侦听器的 NLB 中的网络请求。 成员 是具有配置为侦听请求的指定端口的后端服务器。
第 4 层负载均衡
Network Load Balancer for VPC 为 VPC 中的用户服务器提供层 4 (称为传输层) 负载均衡服务。 它根据源和目标 IP 地址以及包头中的端口来确定流量的定向位置。 负载均衡器不会对包的内容执行检查。
由于与更复杂的负载均衡 (例如,层 7) 相比,层 4 负载均衡需要更少的计算,因此更有效地使用 CPU 使用率和内存。
用例 1: 公用网络负载均衡器
公共 NLB 支持直接服务器返回 (DSR)。 应用程序负载均衡器不支持此功能。
图 2 说明了公共 NLB 的工作方式。 使用者使用负载均衡器的 FQDN 向 DNS 注册负载均衡器的 IP 地址。 使用者可选择查询 DNS 服务器。 DNS 使用负载均衡器的 IP 地址进行响应。 消费者向负载平衡器发送 TCP 数据请求,负载平衡器将请求转发给后端目标。 目标生成响应,并将该响应直接发送给具有 DSR 的使用者。
用例 2: 专用网络负载均衡器
专用 NLB 只能从 VPC 网络中访问,其中使用者具有可达性 (例如,通过 Direct Link和/或 Transit Gateway)。
对于专用负载均衡器,您必须具有没有为子网配置定制路由的专用子网。
图 3 说明了专用 NLB 的工作方式。 使用者使用负载均衡器的 FQDN 查询 DNS 以获取负载均衡器的 IP 地址。 使用者可选择查询 DNS 服务器。 DNS 使用负载均衡器的 IP 地址进行响应。 消费者通过直接链接或中转网关向负载平衡器发送 TCP 数据请求,负载平衡器将请求转发给后端目标。 目标生成响应,并使用 DSR 将响应直接发送给使用者。
用例 3: 已启用路由方式的专用网络负载均衡器
route_mode 设置为 true 的 NLB 是专用负载均衡器,仅支持虚拟网络功能 (VNF) 设备 (例如防火墙) 作为后端目标。
图 4 说明了具有路由方式的专用 NLB 的工作方式。 使用者使用负载均衡器的 FQDN 查询 DNS 以获取负载均衡器的 IP 地址。 使用者可选择查询 DNS 服务器。 DNS 使用负载均衡器的 IP 地址进行响应。 用户通过直接链接或中转网关向负载平衡器发送 TCP 请求,以获取数据。 负载均衡器将请求转发到 VNF 设备,然后转发到后端目标。 目标将生成响应,该响应将发送回 NLB,然后再次发送到 VNF 设备,然后再返回到客户机。
在每个区域中,多个启用了路由模式的私有 NLB 可在任何时候异步接收流量。 如果一个路由模式的 NLB 状态变为不正常,它将停止接收流量,而流量会自动转移到该区域内状态正常的路由模式 NLB 上。 如需了解更多信息,请参阅 “加权转发”。
用例 4:使用网络负载平衡器实现多区高可用性
图 5 说明了如何部署 NLB 以支持多个区域。 这种部署方案通常需要使用 "IBM Cloud Internet Services(CIS) 中的全局负载平衡器(GLB)选项。
这种使用情况存在一个 已知的限制。 具有相同实例和端口的两个成员不能同时存在。 相反,您可以在同一实例中使用不同的端口。
您可能希望利用 NLB 通过 DSR 获得的高吞吐量性能 (和低延迟)。 此外,建议您在多个专区中部署工作负载,以提高其在高可用性 (HA) 环境中的可用性。
您可以使用此部署方案来获取高可用性,并确保在发生负载均衡器故障时跨多个可用性区域提供工作负载。 如果一个可用性区域中的负载均衡器发生故障情况,那么 GLB 将不再向该可用性区域发送流量。 例如,如果可用性区域 1 中发生故障,那么 GLB 会将流量发送到可用性区域 2 或可用性区域 3。 示例场景可以包括大量故障,从单个 NLB 到整个可用性区域的所有故障。
每个区域一个 NLB 的要求只适用于公共和专用 NLB。 专用路径 NLB 本质上是区域性的,因此无需为每个区域定义一个。
用例 5:专用路径网络负载平衡器
专用路径 NLB 在 IBM Cloud 基础架构内保存提供方和用户之间的所有流量检查点。 数据不退出互联网。
与其他 NLB 不同,“专用路径”网络负载平衡器提供区域可用性,即使选择了单一子网,也能抵御区域故障。 您无需创建多个“专用路径”负载平衡器,也无需指定一个以上的子网来确保区域故障的恢复能力。 子网选择只影响与负载平衡器相关的 IP 地址。
只能将专用路径 NLB 与专用路径服务配合使用。 有关更多信息,请参阅 关于专用路径服务。
图 6 说明了专用路径 NLB 如何支持专用路径服务。 专用路径 NLB 向 DNS 服务器注册。 使用者可选择查询 DNS 服务器。 然后,消费者通过 VPE 网关向私有路径 NLB 发送 TCP 数据请求,私有路径 NLB 将请求转发给目标。 反过来,目标会生成一个响应,该响应通过直接服务器返回发送到 VPE,然后再发送给消费者。
用例 8:利用非对称路由实现多区域高可用性
以下配置仅适用于已启用路由模式的私有 NLB。
图 9 说明了私有路由模式的 NLB 如何通过非对称路由实现多区域高可用性。 首先,用户通过私有连接路径(例如 VPN、Direct Link 或 Transit Gateway )向服务提供商的枢纽 VPC 发送请求。 提供商的私有路由模式 NLB 会通过中转网关将请求发送到 spoke VPC 中的虚拟服务器实例。 启用加权转发后,返回流量可以遵循与原始请求不同的路径,而无需依赖先前建立的连接状态。
例如,一个请求数据包可能通过可用区 1 中的 NLB 进入,并被转发到 spoke VPC 中的虚拟服务器实例,而响应数据包则通过可用区 2 中的 NLB 返回。 由于转发与原始连接路径无关,因此响应被正确接收并转发。 配置好的权重在保持多区域高可用性的同时,继续影响流量在后端虚拟服务器实例之间的分配方式。
此外,如果某个区域不可用,或者路由模式网络负载均衡器(NLB)不再关联任何活动防火墙实例,相应的路由通告将自动撤回。 这种动态路由撤销机制可防止流量被引导至状态异常的服务端点,并通过确保流量仅通过基于VNF的正常运行的防火墙设备进行路由,从而实现区域高可用性(HA)。