Jump to: navigation, search


< Neutron‎ | LBaaS

Deploying Neutron LBaaS With Devstack

  • Install devstack with neutron and neutron lbaas
  • Code with LoggingNooopDriver is merged. No review needed to pull down.
  • Run database migration
    • neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head
    • If any issues pop up its probably better to just ./unstack.sh devstack and ./stack.sh devstack again while you've got the gerrit change request checked out.
  • Change the neutron config
    • /etc/neutron/neutron.conf
      • Under the [DEFAULT] section there is an options called service_plugins. It is a comma-delimited list. Add the following to it:
        • If service_plugins option already exists add to the end of the line:
          • ,neutron.services.loadbalancer.plugin.LoadBalancerPluginv2
        • If service_plugins option does not exist add this line:
          • service_plugins = neutron.services.loadbalancer.plugin.LoadBalancerPluginv2
      • Under the [service_providers] section (usually at the bottom) there are options called service_provider, there can be many service_provider entries. Add the following
        • To use the LoggingNoopDriver:
          • service_provider=LOADBALANCERV2:LoggingNoop:neutron.services.loadbalancer.drivers.logging_noop.driver.LoggingNoopLoadBalancerDriver:default
        • To use the Synchronous Haproxy Driver:
          • Uncomment the line that looks like the line below
          • service_provider=LOADBALANCERV2:Haproxy:neutron.services.loadbalancer.drivers.haproxy.synchronous_namespace_driver.HaproxyNSDriver:default
  • Re-install the neutron code and restart the neutron-server process. This is most easily done by going into the devstack screen, switching to neutron server (^A-6, the screen name is q-svc), hitting ^C, up arrow, enter. Alternately:
    • I use this bash script:

if [ `ps aux | grep neutron-server | wc -l` -gt 1 ]; then
    kill -9 `ps aux | grep '[n]eutron-server' -m1 | awk '{print $2}'`

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
  • Install the CLI/client
cd /opt/stack/python-neutronclient
git review -d 111475
sudo python setup.py install
  • Create Entities Using CLI/client
    •  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 --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}') 
  • Command-line tester

A mostly stand-alone test script that drives the CLI and API to create load balancers in various configurations: https://github.com/dougwig/lbaas_tester

  • Issues
  • DEMO system
    • For reviewers only, /msg an ssh public key to dougwig
    • ssh ubuntu@v2.lbaas.me
    • Source the files "admin-openrc.sh" or "demo-openrc.sh" as needed (should be almost all demo-openrc.sh)
    • For Horizon, use admin/secretadmin or demo/secretadmin
    • This is a standard devstackgate box; logs will be in /opt/stack/new/screen-logs. Please do NOT re-run stack.sh.