带有约束的 docker 服务在工作节点重新连接后重新启动正在运行的服务

问题描述 投票:0回答:0

我们有一个 docker swarm 系统,它有特殊的工作节点,它们是车辆。这些车辆可能会暂时失去与蜂群的连接(由于 LTE 连接)。

我们还需要在特定车辆(群节点)上启动特定容器。

我设法使用此约束命令在特定机器上启动服务:

docker service create --name redis --constraint node.labels.vehicle==vehicle1 redis:latest

这就像一个魅力,在特定车辆“vehicle1”上启动容器。 当车辆工作节点暂时断开连接时,节点上的容器继续运行,这是正确的行为。 manager看到容器下线,尝试在另一台机器上启动容器,但是因为约束,报错“no suitable node (scheduling...)”。

现在,当带有工作节点的车辆重新连接到 swarm 时,仍然在那里正常运行的容器被重新启动,因为管理器调度了它。

我能以某种方式告诉 swarm 管理器等待工作节点重新连接到 swarm 和/或在工作节点恢复在线时不重新启动容器吗?

docker docker-swarm
© www.soinside.com 2019 - 2024. All rights reserved.