From 8e80e7153afa33a88938ecdce24b5ef65f592dce Mon Sep 17 00:00:00 2001 From: ringtail <773913792@qq.com> Date: Thu, 21 Dec 2017 21:18:23 +0800 Subject: [PATCH 1/3] Fix AutoSync when a etcd cluster is unhealthy When a etcd cluster is unhealthy, the AutoSync will be broken. if etcd cluster node change it's advise ip then docker client will never known even we use domain name in docker opts. Signed-off-by: ringtail --- store/etcd/etcd.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/store/etcd/etcd.go b/store/etcd/etcd.go index ec407b07..fe43f1d0 100644 --- a/store/etcd/etcd.go +++ b/store/etcd/etcd.go @@ -105,8 +105,12 @@ func New(addrs []string, options *store.Config) (store.Store, error) { // Periodic Cluster Sync go func() { for { + // AutoSync should never be broken. + // if so when one etcd cluster node change advise ip then docker client will never known. if err := c.AutoSync(context.Background(), periodicSync); err != nil { - return + log.Printf("Failed to AutoSync from etcd,Because of %s\n", err.Error()) + time.Sleep(periodicSyncDelay) + continue } } }() From 61a721ea0a729d18d3d94ac848532b7b15743fb5 Mon Sep 17 00:00:00 2001 From: ringtail <773913792@qq.com> Date: Thu, 21 Dec 2017 21:37:51 +0800 Subject: [PATCH 2/3] Update etcd.go Signed-off-by: ringtail --- store/etcd/etcd.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store/etcd/etcd.go b/store/etcd/etcd.go index fe43f1d0..df0afac4 100644 --- a/store/etcd/etcd.go +++ b/store/etcd/etcd.go @@ -106,7 +106,7 @@ func New(addrs []string, options *store.Config) (store.Store, error) { go func() { for { // AutoSync should never be broken. - // if so when one etcd cluster node change advise ip then docker client will never known. + // if so when one etcd cluster node change endpoint ip address then docker client will never known. if err := c.AutoSync(context.Background(), periodicSync); err != nil { log.Printf("Failed to AutoSync from etcd,Because of %s\n", err.Error()) time.Sleep(periodicSyncDelay) From 678c3c0e55c74196261c72f54b3155cbadba7747 Mon Sep 17 00:00:00 2001 From: ringtail <773913792@qq.com> Date: Fri, 22 Dec 2017 13:26:39 +0800 Subject: [PATCH 3/3] Update etcd.go Signed-off-by: ringtail --- store/etcd/etcd.go | 1 + 1 file changed, 1 insertion(+) diff --git a/store/etcd/etcd.go b/store/etcd/etcd.go index df0afac4..818fa472 100644 --- a/store/etcd/etcd.go +++ b/store/etcd/etcd.go @@ -56,6 +56,7 @@ type etcdLock struct { const ( periodicSync = 5 * time.Minute + periodicSyncDelay = 5 * time.Second defaultLockTTL = 20 * time.Second defaultUpdateTime = 5 * time.Second )