05. Redis - Keepalived 를 이용한 HaProxy 이중화
HaProxy 를 이용하여 Master / Slave 의 포워딩을 구성하였으나, HaProxy 서버가 다운 되었을 경우를 대비해 HaProxy 를 이중화하고 이를 가상 IP 로 바인딩 시켜주기 위해 Keepalived 를 이용해 보겠습니다.
Keepalived 설치
yum -y install keepalived
PsMisc 설치
yum -y install psmisc
Non-LocalIP 커널 바인딩 허용
echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
sysctl -p
Keepalived 설정 (Master 측)
global_defs {
lvs_id haproxy_DH
}
vrrp_script check_haproxy {
script "killall -0 haproxy"
interval 2
}
vrrp_instance VI_01 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
virtual_ipaddress {
192.168.81.150
}
track_script {
check_haproxy
}
}
Keepalived 설정 (Backup 측)
global_defs {
lvs_id haproxy_DH_passive
}
vrrp_script check_haproxy {
script "killall -0 haproxy"
interval 2
}
vrrp_instance VI_01 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
virtual_ipaddress {
192.168.81.150
}
track_script {
check_haproxy
}
}
Keepalived 방화벽 추가
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p vrrp -i eth0 -j ACCEPT
firewall-cmd --direct --perm --add-rule ipv4 filter INPUT 0 -p vrrp -i eth0 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -p vrrp -o eth0 -j ACCEPT
firewall-cmd --direct --perm --add-rule ipv4 filter OUTPUT 0 -p eth0 -o ens160 -j ACCEPT
firewall-cmd --reload
Keepalived 로그 경로
cat /var/log/messages