离开docker swarm,但让服务保持运行

时间:2018-04-26 22:25:18

标签: docker docker-swarm

是否可以让docker swarm节点离开swarm,但在成为swarm成员的同时继续运行服务?

1 个答案:

答案 0 :(得分:0)

简短回答:不要试图这样做。

这将违反群模式的设计。出于同样的原因,当您具有群集模式时,docker会禁用实时还原功能,当节点离开群集群时,您应该无法保持服务运行。这两个决策背后的逻辑是当swarm模式检测到服务的目标状态与当前状态不匹配时,它将尽其所能来实现该目标状态。

使用实时还原,docker通常会在守护程序停止时保持容器运行,并在守护程序重新启动时将这些容器还原到docker守护程序。同样,如果容器在节点离开群集时继续运行,从群体管理器的角度来看,结果将是相同的,运行的容器管理器无法跟踪当前状态。

由于在这些情况下无法跟踪当前状态,因此当容器正常停止或离开群集时,停靠容器时会出现停靠错误。容器将继续运行的情况是在与群集管理器的非正常断开连接期间。在那种情况下,工作人员不知道是否只是它已关闭并且工作负载已在其他地方重新安排,或者只是管理器已关闭,并且停止容器会将一个小的停机变成一个大停机,因此停靠在当断开连接不受控制时,让容器继续运行。