# Infra Servers-HAProxy서버 설치

TASK DESCRIPTION

Network VM에 HAProxy서버를 설치합니다. HAProxy는 S/W적인 Load balancer이며 L/B대상은 api server와 user service들입니다.
물리적인 L4/L7장비로 Load balancing한다면 필요 없습니다.

# HAProxy서버 설치

Terminal 또는 ssh명령으로 Network VM을 접근합니다.

$ yum install -y haproxy.x86_64

# L/B 설정

$ cd /etc/haproxy
$ vi haproxy.cfg
  • api server에 대한 6443, 22623포트 L/B설정을 합니다.

  • user services에 대한 80, 443포트 L/B설정을 합니다.
    L/B node는 ingress controller 서비스가 수행되고 있는 worker node에 대해서만 설정하면 됩니다.

  • 아래 sample파일을 참조하여 셋팅합니다.

    • 기존 기본 haproxy.cfg에서 'maxconn ...'하위의 내용을 지웁니다.
    • 아래 sample의 'listen stats ..'부터 복사하여 추가합니다.
    • IP를 적절하게 변경합니다.
SAMPLE

...
defaults
    ...
    maxconn                 3000

listen stats
    bind :9000
    mode http
    stats enable
    stats uri /
    monitor-uri /healthz

frontend openshift-api-server
    bind *:6443
    default_backend openshift-api-server
    mode tcp
    option tcplog

backend openshift-api-server
    balance source
    mode tcp
    server bootstrap 172.168.0.180:6443 check
    server master-0 172.168.0.186:6443 check
    server master-1 172.168.0.185:6443 check
    server master-2 172.168.0.184:6443 check

frontend machine-config-server
    bind *:22623
    default_backend machine-config-server
    mode tcp
    option tcplog

backend machine-config-server
    balance source
    mode tcp
    server bootstrap 172.168.0.180:22623 check
    server master-0 172.168.0.186:22623 check
    server master-1 172.168.0.185:22623 check
    server master-2 172.168.0.184:22623 check

frontend ingress-http
    bind *:80
    default_backend ingress-http
    mode tcp
    option tcplog

backend ingress-http
    balance source
    mode tcp
    server worker-1 172.168.0.183:80 check
    server worker-2 172.168.0.182:80 check

frontend ingress-https
    bind *:443
    default_backend ingress-https
    mode tcp
    option tcplog

backend ingress-https
    balance source
    mode tcp
    server worker-1 172.168.0.183:443 check
    server worker-2 172.168.0.182:443 check

# HAProxy서버 시작

HAProxy서버를 부팅시 자동 시작하도록 등록
$ systemctl enable haproxy

HAProxy서버 시작
$ systemctl start haproxy

상태확인
$ systemctl status haproxy

# haproxy서버로 포트 forwarding

클러스터 외부에 있는 유선네트워크장치 또는 무선공유기(iptime)에서 6443, 22623, 80, 443포트에 대해
haproxy서버로 포트 forward설정을 합니다.