负载均衡

负载均衡(LB):将公网地址的访问流量分发到一组后端的云主机, 并支持自动检测并隔离不可用的云主机,从而提高业务的服务能力和可用性。
  • 负载均衡自动把访问用户应用的流量分发到预先设置的多个后端云主机,以提供高并发高可靠的访问服务。
  • 根据实际情况,动态调整负载均衡监听器中的云主机来调整服务能力,且不会影响业务的正常访问。
  • 负载均衡监听器支持TCP/HTTP/HTTPS三种协议。
  • 当监听协议为HTTPS,需绑定证书使用,支持上传证书和证书链。
  • 负载均衡器支持灵活配置多种转发策略,实现高级转发控制功能。
Figure 1所示,云路由网络/VPC下虚拟IP提供负载均衡服务。
Figure 1. 虚拟IP-负载均衡


负载均衡的基本使用流程:
  1. 创建负载均衡器。
  2. 创建并添加监听器,指定公网端口到云主机端口的对应关系,设置规则及算法等。
  3. 选择指定三层网络的云主机网卡绑定到监听器,使负载均衡器生效。
以下介绍VPC下负载均衡的使用方法,场景如下:
  • 创建负载均衡器,添加一个监听器并绑定三台云主机,基于默认的轮询算法向三台云主机提供负载均衡服务。
  1. 搭建三个VPC子网,例如:VPC网络-1、VPC网络-2和VPC网络-3,并分别创建云主机VM-1、VM-2和VM-3。详情可参考本教程基本部署章节。如Figure 2所示:
    Figure 2. VM-1、VM-2、VM-3


  2. 创建负载均衡器。
    ZStack私有云主菜单,点击网络服务 > 负载均衡 > 负载均衡器,进入负载均衡器界面,点击创建负载均衡器,在弹出的创建负载均衡器界面,可参考以下示例输入相应内容:
    • 名称:设置负载均衡器名称
    • 简介:可选项,可留空不填
    • 选择虚拟IP:通过虚拟IP提供负载均衡服务,可选新建虚拟IP或已有虚拟IP方式添加
      • 新建虚拟IP方式,必须填写网络信息,可选填指定IP选项
      • 已有虚拟IP方式,必须填写虚拟IP信息
    • 监听器:可选项,监听器可在创建负载均衡器时点击创建监听器按钮直接添加,也可在创建负载均衡器后再添加

      本场景以前者为例,详见添加监听器

    创建负载均衡器所示:
    Figure 3. 创建负载均衡器


  3. 添加监听器。
    创建负载均衡器界面,点击创建监听器按钮,弹出添加监听器界面,可参考以下示例输入相应内容:
    • 名称:设置监听器名称
    • 简介:可选项,可留空不填
    • 协议:选择协议类型,包括:TCP、HTTP、HTTPS
      • TCP:支持1-65535端口
      • HTTP:支持1-65535端口
      • HTTPS:支持1-65535端口
    • 负载均衡端口:可从1-65535端口之间选择一个端口作为负载均衡器公网端口
    • 云主机端口:可从1-65535端口之间选择一个端口作为云主机端口

      例如:公网端口选择80,云主机端口选择100,表示对负载均衡器公网IP的80端口访问会转发到云主机的100端口。

      Figure 4所示:
      Figure 4. 添加监听器


    • 高级:可对高级选项进行设置
      • 空闲连接超时:没有数据传输时,触发负载均衡器终止服务器和客户端连接的超时时间,默认设置为60秒
      • 健康检查阈值:对不健康的云主机,如果连续检查成功次数超过阈值,则认定其健康,默认设置为2次
      • 非健康检查阈值:对云主机健康检查失败次数超过阈值,则认定其不健康,默认设置为2次
      • 健康检查间隔:对云主机进行检查的时间间隔,默认设置为5秒
      • 最大连接数量:设置监听器最大的连接数量,默认设置为5000条
      • 负载均衡算法:对网络包设定不同的路由规则,默认设置为roundrobin(轮询)
        支持的负载均衡算法包括:
        • roundrobin(轮询)

          通过轮询调度算法,将外部请求按顺序轮流分配到负载均衡规则指定的云主机中,它均等地对待每一台云主机,而不管其上实际的连接数和系统负载。

        • leastconn(最少连接)

          通过最少连接调度算法,将网络请求动态地调度到已建立的连接数最少的云主机上。 如果集群中的服务器(云主机)具有相近的系统性能,采用最少连接调度算法可以较好地均衡负载。

        • source(源地址哈希)

          源地址哈希算法,根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器可用且未超载,将请求发送到该服务器,否则返回空。

      Figure 5所示:
      Figure 5. 添加监听器-高级选项


  4. 绑定VM-1、VM-2、VM-3的云主机网卡到监听器。
    1. 进入绑定云主机网卡界面
      ZStack私有云主菜单,点击网络服务 > 负载均衡 > 监听器按钮,进入监听器页面,选择一个监听器,点击更多操作 > 绑定云主机网卡,进入绑定云主机网卡界面。如Figure 6所示:
      Figure 6. 绑定云主机网卡


    2. 在弹出的绑定云主机网卡界面,可参考以下示例输入相应内容:
      • 网络:选择云路由挂载的三层私有网络
      • 云主机网卡:选择网络对应的云主机
      以VPC网络-3为例,如Figure 7所示,点击确定,绑定VM-3的云主机网卡到监听器。
      Figure 7. 绑定VM-3网卡到监听器


      重复此操作,绑定其他两个子网的网卡,绑定后如Figure 8所示:
      Figure 8. 绑定云主机网卡到监听器


  5. 负载均衡器以默认的轮询方式向三台云主机发送信息。
    使用某一可访问VPC网络公网网段的主机,通过nc命令向负载均衡器公网IP:10.151.10.100的80端口发送信息,可在VM-1(私网IP:192.168.10.76)、VM-2(私网IP:192.168.30.252)、VM-3(私网IP:192.168.20.187)的100端口以默认的轮询方式接收信息。
    Note: 需将VM-1、VM-2、VM-3中原先的iptables规则清除,可使用命令iptables -F
    1. 向负载均衡器公网IP的80端口发送三条信息,如Figure 9所示:
      Figure 9. 向负载均衡器公网IP的80端口发送三条信息


    2. VM-1、VM-2、VM-3的100端口分别接收到一条信息,如Figure 10所示:
      Figure 10. 三台云主机的100端口分别接收到一条信息






至此,负载均衡的使用方法介绍完毕。