负载均衡器基础知识
IBM Cloud® Load Balancer 服务在同一个数据中心内本地存在的多个服务器实例(裸机和虚拟服务器)之间分配流量。
公共到专用负载均衡器
对于您的 Load Balancer 服务实例,会分配一个公共可访问的标准域名。 使用此域名访问负载平衡器服务后面托管的应用程序。 可以向一个或多个公共 IP 地址注册此域名。 公共 IP 地址和公共 IP 地址的数量会随着维护和扩展活动的进行而变化,这对用户是透明的。 托管应用程序的后端计算实例必须位于 IBM Cloud Private 网络上。
作为一种良好做法,建议将后端服务器配置为 private-only
,除非它们需要直接的公共连接。 此作法可帮助实现更佳的安全性,且可保留您的公共 IP 地址。 通过使用负载平衡器,这些后端服务器上托管的应用程序仍可通过公共网络访问。
有两种方法可将公共 IP 地址分配给负载均衡器:
-
从 IBM 系统池分配: 缺省方法。 此方法从 IBM 系统池分配 IP 地址。
-
从此帐户中的公共子网分配: 此方法从您的帐户中的公共子网分配 IP 地址。 缺省情况下,子网选择是自动的。 如果您正在使用 API,那么可以在下订单时通过传递公用子网标识来选择特定子网。
专用到专用负载均衡器
内部负载均衡器仅可在 IBM Cloud 专用网络中进行访问。
与公对私负载平衡器一样,您的内部负载平衡器服务实例也会分配一个完全合格的域名。 但是,此域名注册了一个或多个专用 IP 地址。
与公共负载平衡器类似,私有 IP 地址及其数量会随着维护和扩展活动的进行而变化,这对用户是透明的。
托管应用程序的后端计算实例也必须位于 IBM Cloud 专用网络上。
公共到公共负载均衡器
公共到公共负载均衡器可公开访问。
与其他负载平衡器类型一样,您的公共到公共负载平衡器服务实例也会分配一个完全合格的域名。 可以向一个或多个公共 IP 地址注册此域名。
配置负载平衡器后,只有服务器表上下文中成员的公共 IP 地址可见。 这同时适用于第 4 层和第 7 层负载均衡器成员。
公共 IP 地址及其数量会随着维护和扩展活动的进行而变化,这对用户是透明的。
托管应用程序的后端计算实例必须位于 IBM Cloud 公共网络上。
前端和后端应用程序端口/协议
您最多可以定义 10 个前端应用程序端口(协议),并将它们映射到后端应用程序服务器上的相应端口(协议)。 分配给负载平衡器服务实例的完全合格域名和前端应用程序端口都会对外公开。 在这些端口上接收入局用户请求。
后端端口仅在内部已知。 这些后端端口可能与前端端口相同,也可能不同。 例如,可将负载平衡器配置为在前端端口 80 上接收传入的 Web/ HTTP 流量,而后端服务器则在自定义端口 81 上监听。
支持的前端端口/协议有 HTTP、HTTPS 和 TCP。 支持的后端端口/协议还有 HTTP、HTTPS 和 TCP。 传入的 HTTPS 流量必须在负载平衡器上终止,以便与后端服务器进行纯文本 HTTP 通信。 如果后端协议为 HTTPS,则流量在负载平衡器和后端服务器之间加密。
注意事项
- 在初始配置期间,您最多仅可以定义两个前端端口。 创建负载平衡器后,可以编辑端口配置来定义额外的端口,最多可定义 10 个端口。
- 所有 10 个前端端口都必须映射到同一组后端服务器实例。
- 负载平衡器后面最多可放置 50 个服务器实例。
- 端口范围 56500 到 56520 保留用于管理目的,不能用作前端虚拟端口。
- TCP 端口 56501 用于管理。 如果您选择从公共 VLAN 分配负载平衡器的公共 IP 地址,请确保该管理端口以及应用程序端口的流量不会被公共 VLAN 上部署的任何防火墙阻断。 如果选择 IBM 系统池选项来分配负载平衡器的公共 IP 地址,则不需要这样做。
负载均衡方法
以下三种负载平衡方法可用于在后端应用程序服务器之间分配流量:
-
轮循- 轮循是默认的负载平衡方法。 使用此方法,Load Balancer 以一种循环的方式,将入局客户机连接转发到后端服务器。 因此,所有后端服务器大概会接收到相等数目的客户机连接。
-
加权轮循- 采用这种方法时,负载平衡器会根据分配给后端服务器的权重,按比例将进入的客户端连接转发给这些服务器。 将为每个服务器分配缺省权重 50,您可以将其定制为 0-100 范围内的任何值。
举例来说,如果有三个应用服务器 A、B 和 C,它们的权重分别被自定义为 60、60 和 30,那么服务器 A 和 B 收到的连接数相等,而服务器 C 收到的连接数是前者的一半。
将服务器权重重置为 0 意味着不会有新连接转发到该服务器,但任何现有流量只要处于活动状态就会继续流动。 权重为 0 可以帮助服务器从容宕机,并将其从服务轮换中移除。
服务器权重值仅适用于加权循环法。 使用循环法和最小连接负载均衡方法将忽略服务器权重值。
-
最少连接数- 使用这种方法,在给定时间内连接数最少的服务器实例将接收下一个客户端连接。
水平缩放
Load Balancer 会根据负载自动调整其容量。 出现这种情况时,您可能会看到与负载平衡器 DNS 名称相关联的 IP 地址数量发生变化。
多区要求
多区域 (MZR) 通过在多个数据中心部署负载平衡器设备,确保高可用性。 创建负载平衡器时,您需要选择要部署的子网。 如果数据中心是 MZR 的一部分,则一台设备部署在您选择的数据中心,另一台部署在同一区域内的不同数据中心。
例如,达拉斯 (us-south
) 是一个包含数据中心 dal10
、dal12
和 dal13
的 MZR。 子网 A 位于 dal10
,子网 B 和 C 位于 dal12
,子网 D 和 E 位于 dal13
。 如果在 dal13
数据中心创建负载平衡器,则第一个设备部署在
dal13
,第二个设备部署在 dal10
或 dal12
数据中心之间可用 IP 最多的子网。
目前 Cloud Load Balancer 服务在 经典基础设施 中列出的数据中心提供。
MZR 有以下要求
- 所选数据中心必须是 MZR 的一部分。
- 您的帐户中必须启用 VLAN 生成或 VRF。
- 在 MZR 的数据中心内,您的帐户中必须存在专用子网。 在数据中心内创建计算设备会使专用子网实例化。
如果所选数据中心不是 MZR 的一部分,或者账户中未启用 VLAN 跨域或 VRF,则创建负载平衡器时将按照原始部署行为,在指定的数据中心实例化所有节点。
有关多区区域的更多信息,请参阅 IBM Cloud 资源部署的区域和数据中心位置。 有关区域和区之间的映射信息,请参阅 每个账户的区映射。