当一项服务失败时回滚整个群
Rollback whole swarm when one service fails
是否可以在 docker stack deploy
更新失败时回滚其他服务?
例如我有serv1、serv2、serv3。我运行docker stack deploy
,
serv1 和 serv2 更新没有任何问题,但是 serv3 在健康检查时失败。现在我想让 serv1、serv2 和 serv3 回滚到以前的版本。
在docker集群模式下可以吗?
您可以在每个服务的健康检查中添加相互 ping。
因此,服务 1 运行状况检查 - 确保服务 1 运行,并且服务 2 和服务 3 均可访问。
对于服务 2 - ping 1st 和 3rd 服务
对于服务 3 - ping 2nd 和 3rd.
因此,如果任何服务失败,它会重新启动,如果它无法 ping 任何依赖的服务,它也会重新启动。
我遇到了类似的问题,因此,我们添加了第 4 个服务——全局健康检查器,它从主机安装了 docker 个套接字,它对所有服务执行 ping 操作。这是自定义的,非常丑陋的 nodejs 脚本。它 pinged/checked 它正在监视的每个服务,如果其中任何一个失败,它会发送 docker service update --force serv1
或类似的东西到从主机绑定的 docker 套接字。
是否可以在 docker stack deploy
更新失败时回滚其他服务?
例如我有serv1、serv2、serv3。我运行docker stack deploy
,
serv1 和 serv2 更新没有任何问题,但是 serv3 在健康检查时失败。现在我想让 serv1、serv2 和 serv3 回滚到以前的版本。
在docker集群模式下可以吗?
您可以在每个服务的健康检查中添加相互 ping。
因此,服务 1 运行状况检查 - 确保服务 1 运行,并且服务 2 和服务 3 均可访问。 对于服务 2 - ping 1st 和 3rd 服务 对于服务 3 - ping 2nd 和 3rd.
因此,如果任何服务失败,它会重新启动,如果它无法 ping 任何依赖的服务,它也会重新启动。
我遇到了类似的问题,因此,我们添加了第 4 个服务——全局健康检查器,它从主机安装了 docker 个套接字,它对所有服务执行 ping 操作。这是自定义的,非常丑陋的 nodejs 脚本。它 pinged/checked 它正在监视的每个服务,如果其中任何一个失败,它会发送 docker service update --force serv1
或类似的东西到从主机绑定的 docker 套接字。