mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Disable service on release network
This PR contains a fix for moby/moby#30321. There was a moby/moby#31142 PR intending to fix the issue by adding a delay between disabling the service in the cluster and the shutdown of the tasks. However disabling the service was not deleting the service info in the cluster. Added a fix to delete service info from cluster and verified using siege to ensure there is zero downtime on rolling update of a service.In order to support it and ensure consitency of enabling and disable service knob from the daemon, we need to ensure we disable service when we release the network from the container. This helps in making the enable and disable service less racy. The corresponding part of libnetwork fix is part of docker/libnetwork#1824 Signed-off-by: abhi <abhi@docker.com>
This commit is contained in:
parent
be14665210
commit
a042e5a20a
1 changed files with 3 additions and 0 deletions
|
@ -966,6 +966,9 @@ func (daemon *Daemon) releaseNetwork(container *container.Container) {
|
|||
logrus.Warnf("error locating sandbox id %s: %v", sid, err)
|
||||
return
|
||||
}
|
||||
if err := sb.DisableService(); err != nil {
|
||||
logrus.WithFields(logrus.Fields{"container": container.ID, "sandbox": sid}).WithError(err).Error("Error removing service from sandbox")
|
||||
}
|
||||
|
||||
if err := sb.Delete(); err != nil {
|
||||
logrus.Errorf("Error deleting sandbox id %s for container %s: %v", sid, container.ID, err)
|
||||
|
|
Loading…
Add table
Reference in a new issue