由于某些原因,当我使用时,服务需要在不同的节点上尝试两次启动
docker service update --availability drain myHost
在以前运行此服务的主机上。
docker stop containerId
服务将在第一次尝试时启动。
我不认为docker需要多次尝试才能启动我们的服务,但是当一个节点处于排水模式时,停止容器必须有不同的行为,而docker stop则是不同的,我希望找到这一差异将指引我找到服务问题的正确方向。
-
初始情况
节点1(活动):
节点2:
-
docker service update --availability drain Node2
节点1(活动):
节点2(漏极):
-
docker service update --availability active Node2
-
服务1正在运行
-
Service2正在运行(由于没有重新平衡,因此没有任何更改)
节点2:
-
(onNode1)$: docker stop serivce2
节点2:
当通过添加约束强制服务不在节点上运行时,这种行为是相同的。
-
节点1(活动):
节点2:
-
docker service update --constraint-add "node.hostname != Node2" Service2
-
服务1正在运行
-
Service2正在运行(两次尝试启动后)
-
docker service update --constraint-rm "node.hostname != Node2" Service2
节点2(漏极):
-
docker service update --constraint-add "node.hostname != Node1" Service2
节点2(漏极):
我找不到任何记录在案的差异,所以我希望在stackoverflow上有人知道docker在做什么。