Ubuntu 18.04 Keepliaved VIP 없어지는 현상

ubuntu 18.04가 설치된 서버 2대에 Keepalived 를 설치하고 VIP로 이중화 구성을 진행하였다.

서버를 사용 중 간혹 Master keepalived에서 VIP가 사라지고 Slave로 넘어가지 않는 현상이 발생해서 장애가 날 때가 있었다.

원인을 파악해 보니 ubuntu 16.04에서 추가된 apt.daily란 서비스와 18.04에서 추가된 systemd 데몬이 만나서 나타난 현상이었다.

apt.daily란 매일 06:00와 18:00에 보안 업데이트에 대한 부분만 업데이트 해주는 데몬이다.

문제가 되는 현상은 다음과 같다.

  1. apt.daliy가 보안 업데이트를 하면서 systemd의 network daemon를 재 시작
  2. network daemon이 재 시작 되면서 VIP 정보가 사라짐
  3. keepalived는 재 시작을 안해서 헬스체크에 문제가 없는 것으로 판별
  4. 그리하여 VIP는 사라지고 Slave로 넘어가지도 못하는 현상이 발생

위 현상의 해결 법은 두가지가 있다.

1. apt.daily 자체를 동작하지 않게 설정

root@localhost:~# systemctl stop apt-daily.timer
root@localhost:~# systemctl stop apt-daily.service
root@localhost:~# systemctl stop apt-daily-upgrade.timer
root@localhost:~# systemctl disable apt-daily.timer
root@localhost:~# systemctl disable apt-daily.service
root@localhost:~# systemctl disable apt-daily-upgrade.timer

2. keepalived의 systemd 파일을 network daemon이 재 시작 될 때 같이 재 시작 되도록 설정 변경

root@localhost:~# less /etc/systemd/system/multi-user.target.wants/keepalived.service 
[Unit]
Description=Keepalive Daemon (LVS and VRRP)
After=syslog.target network-online.target network.target
PartOf=systemd-networkd.service
# Only start if there is a configuration file
ConditionFileNotEmpty=/etc/keepalived/keepalived.conf

[Service]
Type=forking
KillMode=process
# Read configuration variable file if it is present
EnvironmentFile=-/etc/default/keepalived
ExecStart=/usr/sbin/keepalived $DAEMON_ARGS
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

위의 정보 중 4,5줄의 정보만 변경하면 된다.

PartOf는 설정된 데몬이 재 시작 될 경우 자신도 재 시작을 해야 한다는 옵션이다.

You may also like...

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x