Neutron - Lbaas配置

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用户登录,点击左边面板的“负载均衡器”,右边的区域可以看到资源池、成员、监控三个标签页面

wKiom1Qv-AfCXYWzAAPjFNfBZzg870.jpg

这是九州云公司的horizon二次开发界面,加了新功能j_0061.gif


2 点击右屏幕区域的”新增资源池“,填入相应信息

wKioL1Qv-iux0BoTAAF4SqdBQAQ852.jpg

点击“添加”


3  点击”添加VIP“,填入相应信息

wKiom1Qv-qfCWSthAAKfoSEyIHg297.jpg


wKioL1Qv-32QX84VAAGqpKFoO8g287.jpg

点击”添加“,现在dashbaord还不支持给直接给lb vip绑定一个floating ip


这里创建2台实例来做测试,不多说明,直接附图了

wKioL1Qv_dKgjcMiAAHEAepdfR0294.jpg

wKiom1Qv_aGCmp_wAAEqzS4HMcU875.jpg

wKioL1Qv_kjwlLO3AALXLEPEPTs152.jpg


4  设置成员

wKiom1Qv_pqCJSXIAAIgWPZt25g684.jpg


点击”新增成员“,填入相应信息

wKioL1Qv_y_hhCeeAAFD-spk8Gg946.jpg

点击“添加”


wKiom1Qv_0_yVJSsAAK8OdxnZLI387.jpg


5  设置健康监控,因为haproxy支持后端健康检测

wKiom1QwAEeCWswvAAGgmfUpJTs189.jpg

点击“新增监控”


wKiom1QwASehiqL3AAFVUm5dncU469.jpg

点击“添加”


6  关联“资源池”和“监控”

wKioL1QwAg6RQdIGAAKDvL2IRSc851.jpg

点击“添加健康监控”


wKiom1QwAibBEBYSAAC9_DkofEg203.jpg

点击“添加”


7  dahboard绑定floating ip和vip

这样就可以通过外部网络来访问vip了 


点击左边面板的“访问&安全”,创建一个floating ip

wKioL1QwBaqjh3KcAAJvnbqgtBI273.jpg

点击“关联”


wKiom1QwBnqQnG2_AADB9J0Fqeo948.jpg

点击“关联”


8  验证lbaas

为了体现测试的目的,分别给两台实例首页写入不同的内容,以示区别

wKiom1QwB1ezesaVAABeJdxw-Lk626.jpg


wKioL1QwB_rDYzB7AABdyxtYMm8133.jpg


随便一台机子测试,因为是roundrobin,所以每次访问都不同

wKiom1QwCM_iQDEqAAIDEXdrmX0596.jpg


haproxy如果检测不到后端server,会在终端报如下信息

wKioL1Q16GrQMyhiAAJL3jFfRxk823.jpg


参考链接

https://www.ustack.com/blog/neutron_loadbalance/

http://www.peichao.info/archives/116

你可能感兴趣的:(neutron,LBaaS)