lbaas简介
Lbaas 是 load balance as a service , 是neutron提供的网络负载均衡服务,也是以插件形式提供。neutron负载均衡服务支持的软件有:
开源软件:haproxy
商业软件:radware、netscaler、embrane
lbaas配置
neutron-lbaas-agent 我配置在网络节点上,至于配置在控制节点或计算节点上可不可行,有待进一步验证。
我测试的openstack版本是icehouse,系统centos6.5
具体操作步骤:
[root@controller2 ~]# yum install haproxy # 先安装haproxy包 [root@controller2 ~]# vim /etc/neutron/neutron.conf # 编辑neutron.conf 在相应的section添加内容如下 [default] service_plugins = router,lbaas [service_providers] service_provider = LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default [root@controller2 ~]# egrep -v "^$|^#" /etc/neutron/lbaas_agent.ini # 编辑lbaas_agent.ini 添加如下内容 [DEFAULT] interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver # 这里我用的是OVS,如果用的linux bridge,就写成这样interface_driver=neutron.agent.linux.interface.BridgeInterfaceDriver ovs_use_veth = True device_driver = neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver [haproxy] user_group = nobody # 注意这里,默认配置是nogroup,centos系统默认是没有nogroup这个组的 [root@controller2 ~]# vim /etc/openstack-dashboard/local_settings # 让dashboard显示load balancers面板,默认不显示 OPENSTACK_NEUTRON_NETWORK = { 'enable_lb': True, # 默认是False [root@controller2 ~]# for i in {neutron-server,httpd,neutron-lbaas-agent};do service $i restart;done #重启相应服务
lbaas TroubleShooting
重启neutron-server服务报错
[root@controller2 neutron]# less /var/log/neutron/server.log # 查看neutron-server日志,报错如下 ERROR neutron.services.provider_configuration [-] Driver neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver is not unique across providers
解决:
[root@controller2 neutron]# vim /usr/share/neutron/neutron-dist.conf # 编辑/usr/share/neutron/neutron-dist.conf配置文件 [service_providers] #service_provider = LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default # 注释掉这里的service_provider [root@controller2 neutron]# vim /etc/init.d/neutron-server prog=neutron exec="/usr/bin/$prog-server" configs=( "/usr/share/$prog/$prog-dist.conf" \ # 这里看到了吧,/usr/share/neutron/neutron-dist.conf配置文件也被neutron-server加载了,重复加载了lbaas的service_provider,所以报错了 "/etc/$prog/$prog.conf" \ "/etc/$prog/plugin.ini" \ )
lbaas使用
1 使用admin用户登录,点击左边面板的“负载均衡器”,右边的区域可以看到资源池、成员、监控三个标签页面
这是九州云公司的horizon二次开发界面,加了新功能
2 点击右屏幕区域的”新增资源池“,填入相应信息
点击“添加”
3 点击”添加VIP“,填入相应信息
点击”添加“,现在dashbaord还不支持给直接给lb vip绑定一个floating ip
这里创建2台实例来做测试,不多说明,直接附图了
4 设置成员
点击”新增成员“,填入相应信息
点击“添加”
5 设置健康监控,因为haproxy支持后端健康检测
点击“新增监控”
点击“添加”
6 关联“资源池”和“监控”
点击“添加健康监控”
点击“添加”
7 dahboard绑定floating ip和vip
这样就可以通过外部网络来访问vip了
点击左边面板的“访问&安全”,创建一个floating ip
点击“关联”
点击“关联”
8 验证lbaas
为了体现测试的目的,分别给两台实例首页写入不同的内容,以示区别
随便一台机子测试,因为是roundrobin,所以每次访问都不同
haproxy如果检测不到后端server,会在终端报如下信息
参考链接
https://www.ustack.com/blog/neutron_loadbalance/
http://www.peichao.info/archives/116