Addressing high availability for OpenStack includes avoiding high load of a single host and ensuring incoming TCP connections to all API endpoints are balanced across the controller hosts. We will use HAProxy, an open source load balancer, which is particularly suited for HTTP load balancing as it supports session persistence and layer 7 processing.
In this section, we will install HAProxy on all controller hosts, configure Pacemaker cluster for HAproxy services, and prepare for OpenStack services configuration.
Run the following steps on all controller nodes:
Install HAProxy package:
# yum install -y haproxy
Enable nonlocal binding Kernel parameter:
# echo net.ipv4.ip_nonlocal_bind=1 >> /etc/sysctl.d/haproxy.conf # echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind
Configure HAProxy load balancer settings for the GaleraDB, RabbitMQ, and Keystone service, as shown in the following diagram:
Edit
/etc/haproxy/haproxy.cfg
with the following configuration...