Keepalived VIP Failure in Ubuntu 18.04

Ubuntu 18.04 에서 Keepliaved VIP 없어지는 현상

Ubuntu 18.04 버전이 설치된 서버 2대에 Keepalived 를 이용하여 이중화 구성을 사용 중 발생한 이슈 입니다. 정상적으로 사용중에 가끔 마스터 서버에서 VIP 가 사라지고 슬레이브로도 VIP 가 넘어가지 않는 현상으로 인해 장애가 발생하여 해당 원인을 파악해 보았습니다.

해당 이슈는 Ubuntu 16.04 버전에서 추가된 apt.daily 서비스와 Ubuntu 18.04 버전에서 추가된 Systemd 데몬의 충돌 때문이었습니다.

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

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

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

이 현상에 대한 해결 방법은 두 가지가 있습니다.

1. apt.daily 서비스가 동작하지 않도록 disable

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 이 재시작 될 때 같이 재시작 되도록 설정 변경

[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

3, 4 번 라인과 같이 해주시면 됩니다.

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

You may also like...

Subscribe
Notify of
guest

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

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