[openstack-dev] [neutron][lbaas] Trying to set up LBaaS V2 on Juno with DVR

Doug Wiegley dougw at a10networks.com
Fri Jan 23 18:56:04 UTC 2015


Get ready to vomit.

The lbaasv2 code you’re pulling is a non-agent driver.  Meaning, it runs
haproxy on the *neutron controller* node, and only the controller node.
It’s meant to be a POC for single node systems, not something you can
deploy.

In the upcoming mid-cycle, the driver will be agent-ified, like v1. I
believe Phil from Rax will be leading that effort.

Thanks,
Doug



On 1/23/15, 11:01 AM, "Al Miller" <ajmiller at ajmiller.net> wrote:

>I have been trying to set up LBaaS v2 in a juno-based environment.
>
>I have successfully done this in devstack by setting it up based on
>stable/juno, then grabbing https://review.openstack.org/#/c/123491/ and
>the client from https://review.openstack.org/#/c/111475/, and then
>editing neutron.conf to include the
>neutron.services.loadbalancer.plugin.LoadBalancerPluginv2 service_plugin
>and 
>service_provider=LOADBALANCERV2:Haproxy:neutron.services.loadbalancer.driv
>ers.haproxy.synchronous_namespace_driver.HaproxyNSDriver:default.  I have
>also enabled DVR, 
>
>With this setup in devstack, I can use the LBaaS V2 CLI commands to set
>up a  working V2 loadbalancer.
>
>The problem comes in when I try to do this in an openstack installation.
>I have set up a three node installation based on Ubuntu 14.04 following
>the procedure in 
>http://docs.openstack.org/juno/install-guide/install/apt/openstack-install
>-guide-apt-juno.pdf.  I have a controller node for the API services, a
>network node, and a compute node.   I can boot instances and create V1
>loadbalancers.
>
>When I bring in the LBaaS V2 code into this environment, it is more
>complex.  I need to add it to the neutron API server on the controller,
>but also the compute node (the goal here is to test it with DVR).   So on
>the compute node I install the neutron-lbaas-agent package, bring in the
>123491 patch, and make the neutron.conf edits.  In this configuration,
>the lbaas agent fails with an RPC timeout:
>
>2015-01-22 16:10:52.712 14795 ERROR
>neutron.services.loadbalancer.agent.agent_manager [-] Unable to retrieve
>ready devices
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager Traceback (most recent
>call last):
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/neutron/services/loadbalancer/agent/agen
>t_manager.py", line 148, in sync_state
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     ready_instances =
>set(self.plugin_rpc.get_ready_devices())
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/neutron/services/loadbalancer/agent/agen
>t_api.py", line 38, in get_ready_devices
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager
>self.make_msg('get_ready_devices', host=self.host)
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/neutron/common/log.py", line 36, in
>wrapper
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     return
>method(*args, **kwargs)
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/neutron/common/rpc.py", line 175, in
>call
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     context, msg,
>rpc_method='call', **kwargs)
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/neutron/common/rpc.py", line 201, in
>__call_rpc_method
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     return
>func(context, msg['method'], **msg['args'])
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/client.py", line
>389, in call
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     return
>self.prepare().call(ctxt, method, **kwargs)
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/client.py", line
>152, in call
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     retry=self.retry)
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/oslo/messaging/transport.py", line 90,
>in _send
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     timeout=timeout,
>retry=retry)
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/oslo/messaging/_drivers/amqpdriver.py",
>line 408, in send
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     retry=retry)
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/oslo/messaging/_drivers/amqpdriver.py",
>line 397, in _send
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     result =
>self._waiter.wait(msg_id, timeout)
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/oslo/messaging/_drivers/amqpdriver.py",
>line 285, in wait
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     reply, ending =
>self._poll_connection(msg_id, timeout)
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager   File
>"/usr/lib/python2.7/dist-packages/oslo/messaging/_drivers/amqpdriver.py",
>line 235, in _poll_connection
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager     % msg_id)
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager MessagingTimeout: Timed
>out waiting for a reply to message ID e928ae87e89e442790b84f053a75f58f
>2015-01-22 16:10:52.712 14795 TRACE
>neutron.services.loadbalancer.agent.agent_manager
>
>Digging into this, I see that it is running the v1 namespace_driver (not
>synchronous_namespace_driver), so I edited the lbaas-agent.conf to load
>synchronous_namespace_driver), and when I do that it fails to load
>because __init__() takes two arguments instead of three.
>
>I'm clearly missing something here, does anyone have any suggestions?  I
>would appreciate any advice, and can provide more details as needed.
>
>Thanks,
>
>Al
>
>
>
>
>
>
>
>
>__________________________________________________________________________
>OpenStack Development Mailing List (not for usage questions)
>Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list