There is a fix upstream for this issue in keepalived 2.0. I'm looking
into what would be required to backport the fix. In the meantime, there
is a workaround that I hope will be sufficient for your needs, as
discovered by https://chr4.org/blog/2019/01/21/make-keepalived-play-
nicely-with-netplan-slash-systemd-network/
You'll need to create a dummy interface, and then assign the virtual IP
to that. Here's an example using a VM, which will generate a virtual ip
of x.y.z.3. You can set your own last quad by changing the last part of
the sed command '\1.3/g' to .4 or .215 or whatever:
multipass launch daily:bionic --name tester && multipass exec tester --
sudo su
Inside the VM:
apt update && apt dist-upgrade -y && apt install -y keepalived &&
echo "vrrp_instance VI_1 {
virtual_router_id 33
state MASTER
interface ens3
virtual_ipaddress {
$(ip addr | grep 'inet ' | grep global | head -1 | sed 's/.*inet
\([0-9]*\.[0-9]*\.[0-9]*\)\..*/\1.3/g') dev keepalived0
}
}" >/etc/keepalived/keepalived.conf &&
echo "[NetDev]
Name=keepalived0
Kind=dummy" >/lib/systemd/network/90-keepalived.netdev &&
service systemd-networkd restart &&
service keepalived start
# There will be a new IP address x.y.z.3/32 added to keepalived0
ip addr
# Restart networkd. The IP address doesn't get destroyed like it did in the bug
report
systemctl restart systemd-networkd
ip addr
# Restart keepalived. The IP address gets rebuild the same as before
systemctl restart keepalived
ip addr
--
You received this bug notification because you are a member of Ubuntu
High Availability Team, which is subscribed to keepalived in Ubuntu.
https://bugs.launchpad.net/bugs/1810583
Title:
Daily cron restarts network on unattended updates but keepalived
.service is not restarted as a dependency
Status in keepalived package in Ubuntu:
Triaged
Status in networkd-dispatcher package in Ubuntu:
Invalid
Bug description:
[Impact]
If systemd-networkd is restarted, any VRRP from keepalived are not
restored.
[Test Case]
multipass launch daily:bionic --name tester && multipass exec tester
-- sudo su
apt update && apt dist-upgrade -y && apt install -y keepalived &&
echo "vrrp_instance VI_1 {
virtual_router_id 33
state MASTER
interface ens3
virtual_ipaddress {
$(ip addr | grep 'inet ' | grep global | head -1 | sed 's/.*inet
\([0-9]*\.[0-9]*\.[0-9]*\)\..*/\1.3/g')
}
}" >/etc/keepalived/keepalived.conf &&
service keepalived start &&
# There will be a new IP address x.x.x.3/32 added to ens3
ip addr
# Restart networkd. The IP address won't come back
systemctl restart systemd-networkd
ip addr
# Restart keepalived. The IP address will come back
systemctl restart keepalived
ip addr
[Regression Potential]
TODO
[Original Description]
Description: Ubuntu 18.04.1 LTS
Release: 18.04
ii keepalived 1:1.3.9-1ubuntu0.18.04.1 amd64 Failover and monitoring daemon
for LVS clusters
(From unanswered
https://answers.launchpad.net/ubuntu/+source/keepalived/+question/676267)
Since two weeks we lost our keepalived VRRP address on on our of
systems, closer inspection reveals that this was due to the daily
cronjob.Apparently something triggered a udev reload (and last week
the same seemed to happen) which obviously triggers a network restart.
Are we right in assuming the below patch is the correct way (and
shouldn't this be in the default install of the systemd service of
keepalived).
/etc/systemd/system/multi-user.target.wants/keepalived.service:
--- keepalived.service.orig 2018-11-20 09:17:06.973924706 +0100
+++ keepalived.service 2018-11-20 09:05:55.984773226 +0100
@@ -4,6 +4,7 @@
Wants=network-online.target
# Only start if there is a configuration file
ConditionFileNotEmpty=/etc/keepalived/keepalived.conf
+PartOf=systemd-networkd.service
Accompanying syslog:
Nov 20 06:34:33 ourmachine systemd[1]: Starting Daily apt upgrade and clean
activities...
Nov 20 06:34:42 ourmachine systemd[1]: Reloading.
Nov 20 06:34:44 ourmachine systemd[1]: message repeated 2 times: [ Reloading.]
Nov 20 06:34:44 ourmachine systemd[1]: Starting Daily apt download
activities...
Nov 20 06:34:44 ourmachine systemd[1]: Stopping udev Kernel Device Manager...
Nov 20 06:34:44 ourmachine systemd[1]: Stopped udev Kernel Device Manager.
Nov 20 06:34:44 ourmachine systemd[1]: Starting udev Kernel Device Manager...
Nov 20 06:34:44 ourmachine systemd[1]: Started udev Kernel Device Manager.
Nov 20 06:34:45 ourmachine systemd[1]: Reloading.
Nov 20 06:34:45 ourmachine systemd[1]: Reloading.
Nov 20 06:35:13 ourmachine systemd[1]: Reexecuting.
Nov 20 06:35:13 ourmachine systemd[1]: Stopped Wait for Network to be
Configured.
Nov 20 06:35:13 ourmachine systemd[1]: Stopping Wait for Network to be
Configured...
Nov 20 06:35:13 ourmachine systemd[1]: Stopping Network Service..
To manage notifications about this bug go to: