On Tue, Jan 07, 2014 at 04:37:09PM -0500, Boris Derzhavets wrote:
The first link is a discussion about LBaaS and the second is a
write-up about how to setup HAProxy to load balancer OpenStack API
services. These are two entirely different things.
Edit /etc/neutron/neutron.conf and add the following in the default
section:
[DEFAULT]
service_plugins = neutron.services.loadbalancer.plugin.LoadBalancerPlugin
Already there
Then edit the /etc/openstack-dashboard/local_settings file and search for enable_lb and
set it to true:
OPENSTACK_NEUTRON_NETWORK = {
'enable_lb': True
}
Done
# yum install haproxy - already installed
# vi /etc/neutron/lbaas_agent.ini - already done no changes
device_driver=neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
user_group=haproxy
Comment out the line in the service_providers section:
service_provider=LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
Nothing to remove
service neutron-lbaas-agent start - already running , restarted
chkconfig neutron-lbaas-agent on - skipped
service neutron-server restart - done
service httpd restart - done
So far you've setup LBaaS and everything looks fine.
HA enabled via keepalived , Virtual IP 192.168.1.132.
Keepalived has nothing to do with LBaaS, so we've diverged a bit here.
Follow
http://openstack.redhat.com/Load_Balance_OpenStack_API#HAProxy
and
http://openstack.redhat.com/forum/discussion/798/enabling-lbaas-in-havana...
replacing "quantum" by "neutron" and using virirtual IP for one
server creating /etc/haproxy/haproxy.cfg. Haproxy fails to start reporting:
Starting haproxy:
[ALERT] 006/135903 (12988) : Starting frontend keystone-admin-vip: cannot bind socket
[ALERT] 006/135903 (12988) : Starting frontend keystone-public-vip: cannot bind socket
Where are you starting haproxy? I am guessing that you're starting
this on the controller, which will be a problem since the OpenStack
services themselves are setup to listen on 0.0.0.0:<PORT> which means
haproxy cannot also listen on that port on the same node.
Really , for any port mentioned in haproxy.cfg :-
# netstat -lnp | grep 35357 tcp 0 0 0.0.0.0:35357 0.0.0.0:* LISTEN 4189/python
# netstat -lnp | grep 5000 tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 4189/python
. . . . . .
Haproxy may be started ahead of openstack services, but in this case
openstack services fail to start. I am missing something here
First, what is it you want to do? If you want to setup LBaaS, you were
on the right track. Once LBaaS is configured and the agent is running,
use the Neutron API to create a load-balancer. This will load-balancer
traffic to your virtual machines.
The write-up you referenced on the RDO page describes how to use
haproxy and keepalived to achieve a highly-available load-balancer for
your OpenStack services. For example, you might have many controllers,
each running neutron, keystone, nova API services, etc. and you can
put a load-balancer in front of these services for scalability and
availability.
Let me know if you have questions.
Ryan