`Home `_ OpenStack-Ansible Installation Guide
Configuring the Network Load Balancing Service (Optional)
---------------------------------------------------------
The OpenStack Networking Service, Neutron, includes a Load Balancer as a
Service (LBaaS). This service lets you configure a load balancer that runs
outside of your instances and directs traffic to your instances. A common use
case is when you want to use multiple instances to serve web pages and want to
meet high performance or availability goals.
OpenStack-Ansible currently provides the OpenStack Neutron LBaaS service using
HAProxy as the load balancer. LBaaS has two implementations available: v1 and
v2.
Both implementations use agents that manage `HAProxy`_ daemons. However, LBaaS
v1 has a limitation of one port per load balancer. LBaaS v2 allows for multiple
ports (called *listeners*) per load balancer.
.. note::
Horizon panels for LBaaS v2 are not yet available.
.. _HAProxy: http://www.haproxy.org/
Deploying LBaaS v1
~~~~~~~~~~~~~~~~~~
.. note::
LBaaS v1 was deprecated during the Liberty release and is not recommended
for new deployments.
#. Start by adding the LBaaS v1 plugin to the ``neutron_plugin_base`` variable
within ``/etc/openstack_deploy/user_variables.yml``.
.. code-block:: yaml
neutron_plugin_base:
- neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
- neutron.services.metering.metering_plugin.MeteringPlugin
- neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPlugin
Ensure that ``neutron_plugin_base`` includes all of the plugins that you
want to deploy with Neutron **in addition** to the LBaaS plugin.
#. Run the Neutron and Horizon playbooks to deploy the LBaaS v1 agent and enable
the LBaaS panels in Horizon.
.. code-block:: console
# cd /opt/openstack-ansible/playbooks
# openstack-ansible os-neutron-install.yml
# openstack-ansible os-horizon-install.yml
Deploying LBaaS v2
~~~~~~~~~~~~~~~~~~
#. Start by adding the LBaaS v2 plugin to the ``neutron_plugin_base`` variable
within ``/etc/openstack_deploy/user_variables.yml``.
.. code-block:: yaml
neutron_plugin_base:
- neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
- neutron.services.metering.metering_plugin.MeteringPlugin
- neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2
Ensure that ``neutron_plugin_base`` includes all of the plugins that you
want to deploy with Neutron **in addition** to the LBaaS plugin.
#. Run the Neutron playbook to deploy the LBaaS v2 agent:
.. code-block:: console
# cd /opt/openstack-ansible/playbooks
# openstack-ansible os-neutron-install.yml
Special notes about LBaaS
~~~~~~~~~~~~~~~~~~~~~~~~~
The LBaaS default configuration options may be changed through the
`conf override`_ mechanism using the ``neutron_lbaas_agent_ini_overrides``
dict.
LBaaS v1 and v2 agents cannot run at the same time. If a deployer switches from
LBaaS v1 to v2, the v2 agent will be the only agent running. The LBaaS v1 agent
will be stopped along with any load balancers provisioned under the v1 agent.
The same is true if a deployer chooses to move from LBaaS v2 to v1.
Load balancers are not migrated between LBaaS v1 and v2 automatically. Each
implementation has different code paths and database tables. Deployers will need
to manually delete load balancers, pools, and members before switching LBaaS
versions. Those objects will need to be re-created afterwards.
.. _conf override: http://docs.openstack.org/developer/openstack-ansible/install-guide/configure-openstack.html
--------------
.. include:: navigation.txt