Fixed down server issue after reloading keepalived
When removing a UDP health monitor, keepalived is reloaded with a configuration without any checkers. But if keepalived has previously detected a down server, the state of the server is unchanged and it will never be added to the list of IPVS servers. Restarting keepalived on configuration change works around this issue. This issue is fixed in keepalived (>=2.0.14): https://github.com/acassen/keepalived/issues/1163 Story: 2005774 Task: 33491 Change-Id: Iaa34db6cb1dfed98e96a585c5d105e263c7efa65
This commit is contained in:
parent
4decb6d53c
commit
0a9f587015
@ -198,6 +198,13 @@ class KeepalivedLvs(udp_listener_base.UdpListenerApiServerBase):
|
|||||||
message='Invalid Request',
|
message='Invalid Request',
|
||||||
details="Unknown action: {0}".format(action)), status=400)
|
details="Unknown action: {0}".format(action)), status=400)
|
||||||
|
|
||||||
|
# When octavia requests a reload of keepalived, force a restart since
|
||||||
|
# a keepalived reload doesn't restore members in their initial state.
|
||||||
|
#
|
||||||
|
# TODO(gthiemonge) remove this when keepalived>=2.0.14 is widely use
|
||||||
|
if action == consts.AMP_ACTION_RELOAD:
|
||||||
|
action = consts.AMP_ACTION_RESTART
|
||||||
|
|
||||||
self._check_udp_listener_exists(listener_id)
|
self._check_udp_listener_exists(listener_id)
|
||||||
if action == consts.AMP_ACTION_RELOAD:
|
if action == consts.AMP_ACTION_RELOAD:
|
||||||
if consts.OFFLINE == self._check_udp_listener_status(listener_id):
|
if consts.OFFLINE == self._check_udp_listener_status(listener_id):
|
||||||
|
@ -556,6 +556,7 @@ SYSCTL_CMD = '/sbin/sysctl'
|
|||||||
AMP_ACTION_START = 'start'
|
AMP_ACTION_START = 'start'
|
||||||
AMP_ACTION_STOP = 'stop'
|
AMP_ACTION_STOP = 'stop'
|
||||||
AMP_ACTION_RELOAD = 'reload'
|
AMP_ACTION_RELOAD = 'reload'
|
||||||
|
AMP_ACTION_RESTART = 'restart'
|
||||||
GLANCE_IMAGE_ACTIVE = 'active'
|
GLANCE_IMAGE_ACTIVE = 'active'
|
||||||
|
|
||||||
INIT_SYSTEMD = 'systemd'
|
INIT_SYSTEMD = 'systemd'
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
issues:
|
||||||
|
- |
|
||||||
|
When a load balancer with a UDP listener is updated, the listener service
|
||||||
|
is restarted, which causes an interruption of the flow of traffic during a
|
||||||
|
short period of time. This issue is caused by a keepalived bug
|
||||||
|
(https://github.com/acassen/keepalived/issues/1163) that was fixed in
|
||||||
|
keepalived 2.0.14, but this package is not yet provided by distributions.
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fix a bug that prevented UDP servers to be restored as members of a pool
|
||||||
|
after removing a health monitor resource.
|
Loading…
Reference in New Issue
Block a user