[openstack-dev] [TripleO] Haproxy configuration options
Jan Provazník
jprovazn at redhat.com
Fri May 16 09:52:52 UTC 2014
On 05/12/2014 10:35 AM, Dmitriy Shulyak wrote:
> Adding haproxy (or keepalived with lvs for load balancing) will
> require binding haproxy and openstack services on different sockets.
> Afaik there is 3 approaches that tripleo could go with.
>
> Consider configuration with 2 controllers:
>
> haproxy: nodes: - name: controller0 ip: 192.0.2.20 - name:
> controller1 ip: 192.0.2.21
>
> 1. Binding haproxy on virtual ip and standard ports
>
> haproxy: services: - name: horizon proxy_ip: 192.0.2.22 (virtual
> ip) port: 80 proxy_port: 80 - name: neutron proxy_ip: 192.0.2.22
> (virtual ip) proxy_port: 9696 port: 9696
>
> Pros: - No additional modifications in elements is required
Actually openstack services elements have to be updated to bind to local
address only.
> HA-Proxy version 1.4.24 2013/06/17 What was the reason this approach
> was dropped?
IIRC the major reason was that having 2 services on same port (but
different interface) would be too confusing for anyone who is not aware
of this fact.
>
> 2. Haproxy listening on standard ports, services on non-standard
>
> haproxy: services: - name: horizon proxy_ip: 192.0.2.22 (virtual
> ip) port: 8080 proxy_port: 80 - name: neutron proxy_ip: 192.0.2.22
> (virtual ip) proxy_port: 9696 port: 9797
>
> Pros: - No changes will be required to init-keystone part of
> workflow - Proxied services will be accessible on accustomed ports
Bear in mind that we already use not-standard SSL ports for public
endpoints. Also extra work will be required for setting up stunnels
(element openstack-ssl).
> - No changes to configs where services ports need to be hardcoded,
> for example in nova.conf https://review.openstack.org/#/c/92550/
>
> Cons: - Config files should be changed to add possibility of ports
> configuration
Another cons is also updating selinux and firewall rules for each node.
>
> 3. haproxy on non-standard ports, with services on standard
>
> haproxy: services: - name: horizon proxy_ip: 192.0.2.22 (virtual
> ip) port: 8080 proxy_port: 80 - name: neutron proxy_ip: 192.0.2.22
> (virtual ip) proxy_port: 9797 port: 9696
>
> Notice that i changed only port for neutron, main endpoint for
> horizon should listen on default http or https ports.
>
Agree that having 2 service ports switched in other way than other is
sub-optimal.
> Basicly it is opposite to 2 approach. I would prefer to go with 2,
> cause it requires only minor refactoring.
>
> Thoughts?
>
Options 2 and 3 seem quite equal based on pros vs cons. Maybe we should
reconsider option 1?
Jan
More information about the OpenStack-dev
mailing list