Neutron/LBaaS/DeployWithDevstack
使用Devstack部署Neutron LBaaS
- 使用neutron和neutron lbaas安装devstack
- 如果您尚未安装devstack,可以按照此链接中的说明进行操作。它将启用v1 lbaas API
- http://roaet.com/my-method-to-installuse-devstack
- 包含LoggingNooopDriver的代码已合并。无需审查即可拉取。
- 同步Haproxy驱动程序(也包含LoggingNoopDriver)
- 运行数据库迁移
-
neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head - 如果出现任何问题,最好是 ./unstack.sh devstack 和 ./stack.sh devstack 再次运行,同时您已经检出了gerrit变更请求。
-
- 修改neutron配置文件
- /etc/neutron/neutron.conf
- 在[DEFAULT]部分下,有一个名为service_plugins的选项。它是一个逗号分隔的列表。将以下内容添加到其中
- 如果service_plugins选项已经存在,请将其添加到行尾
-
,neutron.services.loadbalancer.plugin.LoadBalancerPluginv2
-
- 如果service_plugins选项不存在,请添加以下行
service_plugins = neutron.services.loadbalancer.plugin.LoadBalancerPluginv2
- 如果service_plugins选项已经存在,请将其添加到行尾
- 在[service_providers]部分下(通常在底部),有名为service_provider的选项,可以有多个service_provider条目。添加以下内容
- 要使用LoggingNoopDriver
-
service_provider=LOADBALANCERV2:LoggingNoop:neutron.services.loadbalancer.drivers.logging_noop.driver.LoggingNoopLoadBalancerDriver:default
-
- 要使用同步Haproxy驱动程序
- 取消注释如下所示的行
-
service_provider=LOADBALANCERV2:Haproxy:neutron.services.loadbalancer.drivers.haproxy.synchronous_namespace_driver.HaproxyNSDriver:default
- 要使用LoggingNoopDriver
- 在[DEFAULT]部分下,有一个名为service_plugins的选项。它是一个逗号分隔的列表。将以下内容添加到其中
- /etc/neutron/neutron.conf
- 重新安装neutron代码并重启neutron-server进程。最简单的方法是进入devstack screen,切换到neutron server (^A-6,screen名称是q-svc),按^C,向上箭头,回车。或者
- 我使用这个bash脚本
#!/bin/bash
if [ `ps aux | grep neutron-server | wc -l` -gt 1 ]; then
kill -9 `ps aux | grep '[n]eutron-server' -m1 | awk '{print $2}'`
fi
sudo pip install --build=/tmp/pip-build.bE71P -e /opt/stack/neutron
/usr/local/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
- 安装CLI/客户端
cd /opt/stack/python-neutronclient git review -d 111475 sudo python setup.py install
- 使用CLI/客户端创建实体
-
neutron lbaas-pool-create --lb-algorithm ROUND_ROBIN --protocol HTTP pool1
-
neutron lbaas-member-create --subnet-id $(neutron subnet-list | awk '/ private-subnet / {print $2}') --address 10.0.0.2 --protocol-port 80 $(neutron lbaas-pool-list | awk '/ pool1 / {print $2}') -
neutron lbaas-loadbalancer-create lb1 $(neutron subnet-list | awk '/ private-subnet / {print $2}') -
neutron lbaas-listener-create --loadbalancer-id $(neutron lbaas-loadbalancer-list | awk '/ lb1 / {print $2}') --protocol HTTP --protocol-port 80 --default-pool-id $(neutron lbaas-pool-list | awk '/ pool1 / {print $2}')
-
- 命令行测试器
一个大部分独立的测试脚本,它驱动CLI和API以创建各种配置的负载均衡器:https://github.com/dougwig/lbaas_tester
- 问题
- 如果您收到类似于“操作错误”的错误,并伴有数据库相关信息,您需要停止neutron,运行迁移,然后重启neutron。如果迁移失败,您可能需要手动清理过时的lbaas表并重试。https://github.com/openstack/neutron/blob/master/neutron/db/migration/README
- DEMO系统
- 仅供审查者使用,将ssh公钥发送给dougwig
-
ssh ubuntu@v2.lbaas.me
- 根据需要加载“admin-openrc.sh”或“demo-openrc.sh”文件(应该几乎全部加载demo-openrc.sh)
- 对于Horizon,使用admin/secretadmin或demo/secretadmin
- 这是一个标准的devstackgate盒子;日志将在/opt/stack/new/screen-logs中。请勿重新运行stack.sh。