典型场景

典型的场景,租户创建了一个网络,并在其上分配了一个子网 10.0.0.0/24,租户试图通过一个负载均衡设备来实现多个虚拟机呈现统一业务。

首先,启动两个虚机,分别分配到 IP 地址:10.0.0.2 和 10.0.0.4。

OpenStack 的 LBaaS 实现中有三个重要概念:

  • Pool
  • Member
  • Monitor

其中,Pool 是要进行负载均衡的资源池(一般需要对应到某一个子网),可以指定负载均衡的提供机制(例如默认的 HAProxy)、均衡的协议(TCP、HTTP、HTTPS)和端口等、均衡的策略。

pool

定义完成 Pool 后可以往里面添加 Member(即虚拟机),并为各个成员分配权值,指定的目标端口等。
member

最后,定义一个 Monitor,负责定期探测成员的状态。
monitor

例如,我们创建一个 Pool,添加子网 10.0.0.0/24,并添加启动的虚机 10.0.0.2 和 10.0.0.4 作为成员,创建一个 VIP(例如 10.0.0.250)来均衡 TCP 协议,端口 22 的请求。

这样,对地址 10.0.0.250 的 TCP 访问,只要是端口 22 的,会被自动负载均衡到虚机 10.0.0.2 和 10.0.0.4 上去。