跳转到: 导航, 搜索

Neutron/LBaaS/DeployWithDevstack

< Neutron‎ | LBaaS

使用Devstack部署Neutron LBaaS

  • 使用neutron和neutron lbaas安装devstack
  • 包含LoggingNooopDriver的代码已合并。无需审查即可拉取。
  • 运行数据库迁移
    • 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_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
  • 重新安装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

  • 问题
  • 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。