2.4. 负载均衡服务

2.4.1. 概要

为了提高用户服务的可用性和可扩展性,需要使用负载均衡服务;Ustack提供了基于 TCP/HTTP 的负载均衡服务,可以避免用户投入虚拟机和人力的成本、让用户不关心LB的单点问题,且可直接通过API调用自动化操作。

2.4.2. 准备工作

Note

下文中提到的用户为虚拟机的实际搭建和使用者,客户为访问用户服务的普通人或设备,用户在虚拟机上搭建要配合负载均衡器试用的称为业务服务器。

在负载均衡配置之前,请用户先确认如下信息:

  1. 是要选择TCP负载均衡还是HTTP负载均衡;暂不支持其他类型的负载均衡。
  2. 是公网IP还是内网IP的负载均衡,如果是公网IP则需要提前购买IP和带宽,如果是内网负载均衡,IP会在负载均衡器创建时生成。
  3. 请整理出业务服务器的IP和端口,IP不在同一个网段的服务器不能加入同一个负载均衡。
  4. 业务服务器为健康检查做好准备,如果是tcp check保证端口畅通,如果是http check保证检查页面存在;
  5. 默认安全组是允许负载均衡设备和业务服务器互联互通的,如果采用非默认安全组或者设置了iptables请保证负载均衡器到业务服务器之间网络畅通。
  6. 如果用户需要接收来自负载均衡的日志记录,请提前准备好rsyslogd服务器(二期会推出的功能)

2.4.3. 逻辑业务流程

Ustack的负载均衡服务以下列业务逻辑运行的:

  1. 如果客户访问的是公网IP,会首先进行公网/内网IP的NAT转换,如果直接访问的内网IP则略过这一步。
  2. 负载均衡器在收到客户的访问后,根据被访问的端口确认该将业务分配给哪个监听器。
  3. 监听器根据自身的ACL匹配策略,如果无策略则选择默认资源池,决定是该将访问请求转发到某个资源池、URL重定向到其他地址或者拒绝访问。
  4. 资源池定期检查后端业务服务器的功能是否正常,在确认业务服务器正常的情况下会按照调度策略将访问请求发给业务服务器。

2.4.4. 实际配置过程

上述业务流程已经说明了Ustack负载均衡的配置流程,下文以WebUI样例配置的形式,更直观的展示负载均衡配置。

2.4.4.1. 创建负载均衡器

如下图,我们点击WebUI,创建了一个名为Ustack_Test_LB的负载均衡器;注意我们要选定该负载均衡器所在的网络和安全组。

Security Group

如下图,这是创建的负载均衡器,注意如果我们需要手动指定负载均衡器的内网IP,则需要使用API创建,或者发工单由云平台技术支持来创建。

Security Group

默认的负载均衡器没有绑定公网IP,选定负载均衡器以后,选择“更多”–>“绑定公网IP”即可。

Security Group

2.4.4.2. 配置监听器

创建负载均衡器完成了加入客户网络的工作,负载均衡器内需要配置监听器描述将什么样的访问请求转给业务服务器。 如下图,选中一个负载均衡器,选择监听器标签页,即可找到“创建监听器”的按钮。

Security Group

如下图为创建监听器界面,我们需要指定监听器的名称、协议、端口和连接数,不同的连接数对应不同的消费金额。

Security Group

2.4.4.3. 配置资源池

资源池标签页就在负载均衡器标签页的旁边,如下图点击即可创建一个资源池。

Security Group

如下图为创建资源池的样例,注意如果你要配置复杂的会话保持、健康检查方式和时间,要点开才会显示高级选项。

Security Group

点选已经创建的资源池,然后找到添加资源按钮,将你的业务服务器加入到资源池中。

Security Group

如下图是我创建好的资源列表,所有的资源都处于未使用状态,有一个资源出于测试目的被我禁用了。

Security Group

2.4.4.4. 关联资源

新建的资源处于“未使用”状态,是因为还没有监听器和该资源池建立绑定关系,所有资源都是空闲未使用的。 我们需要返回负载均衡器界面,继续配置监听器的转发策略,向负载均衡服务描述,什么样的访问请求转发给哪个资源池。 出于简化操作的目的,我们可以选择“关联默认资源池”,即只要匹配该端口该协议则转发请求到资源池。

Security Group Security Group

配置默认资源池就可以满足大部分操作,但如果你有更详细的的监听器配置需求,可以点击“添加转发策略”来进行一些高级配置。 我们可以配置当匹配某些特定的域名或者URL的时候,执行转发请求到资源池、URL重定向请、丢弃请求等操作。 如下图是添加一个URL重定向的样例,将访问请求以301重定向的方式转发到www.ustack.com 这个网站。

Security Group

添加后的策略,点击“查看或修改”就可以进行具体配置。我们本样例中,将访问www.unitedstack.com和ustack.com的访问请求都转跳到www.ustack.com 。

Security Group Security Group

2.4.5. 使用建议

Note

下列建议都是基于已有热心用户的反馈搜集整理的,请根据自身业务需求确认是否参考该建议。

  1. 我方提供了完善的API文档,可以和运维自动化工作很好的配合。比如说你可以调用“查看资源池状态”的API配置监控,还可以用监控触发的方式添加或删除业务服务器到资源池。

  2. 负载均衡器的日志输出功能正在紧张测试之中,一旦日志输出功能上线,客户就不必从各个业务服务器合并日志了,直接使用rsyslogd或者类似服务即可接收完整的日志。

  3. 负载均衡器提供了URL重定向功能,但部分客户反馈简单的重定向由DNS供应商提供会更经济实惠不消耗带宽;而复杂的重定向规则,在业务服务器上apache/nginx内配置更方便。

  4. 负载均衡设备提供了拒绝部分URL的功能,但部分客户认为这些访问请求仍然要消耗自己的公网带宽,自己就是要抓住这些异常的访问请求,然后分析处理。

  5. 有用户反馈一台web上部署了多个http vhost,导致健康检查页的管理变得困难,你可以在健康检查窗口内输入类似下文的内容,来指定从哪个vhost进行健康检查。

    /checkhost.html HTTP/1.1rnHost:www.test.ustack.com

Security Group