To install the HAProxy Load Balancer, Cloudera uses an example that uses a single
instance of HAProxy, configured with round robin balancing and TCP mode. This allows for
non-terminating https (https passthrough). The HAProxy service can be configured for High
Availability using keepalived.
You must consult your operating system vendor’s documentation for requirements and
the install guide for configuring HAproxy with keepalived.
To install a HAProxy Load Balancer, you must ssh into the HAProxy host,
install, and then configure HAProxy:
sudo su -
yum install haproxy -y
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
cat > /etc/haproxy/haproxy.cfg << EOF
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
user haproxy
group haproxy
daemon
defaults
mode tcp
log global
option tcplog
option dontlognull
option redispatch
retries 3
maxconn 5000
timeout connect 5s
timeout client 50s
timeout server 50s
listen stats
bind *:8081
mode http
stats enable
stats refresh 30s
stats uri /stats
monitor-uri /healthz
frontend fe_k8s_80
bind *:80
default_backend be_k8s_80
backend be_k8s_80
balance roundrobin
mode tcp
server ecs-server1.example.com 10.10.0.1:80 check
server ecs-server2.example.com 10.10.0.2:80 check
server ecs-server3.example.com 10.10.0.3:80 check
frontend fe_k8s_443
bind *:443
default_backend be_k8s_443
backend be_k8s_443
balance roundrobin
mode tcp
server ecs-server1.example.com 10.10.0.1:443 check
server ecs-server2.example.com 10.10.0.2:443 check
server ecs-server3.example.com 10.10.0.3:443 check
EOF
systemctl enable haproxy
systemctl restart haproxy
systemctl status haproxy
You can verify that all the hosts are shown from the HAproxy UI. However, at
this point the hosts are not listening to the configured ports.