是否始终首先在新的Swarm节点上创建Docker全局服务?

时间:2016-12-28 13:12:47

标签: docker docker-swarm

在Docker Swarm模式(1.12+)中,可以创建所谓的“全局”服务,例如:

docker service create \
 --name redis_2 \
 --mode global \
 redis:3.0.6

全局服务在每个节点上都处于活动状态。

当我向Swarm添加新节点以及当Swarm有一些待创建的服务要创建时,创建服务的顺序是什么?

Swarm 保证全局服务是首先(直到其运行状况检查通过),并且只有在Swarm创建待处理的复制服务之后?

1 个答案:

答案 0 :(得分:0)

不,没有保证服务启动的顺序。最佳做法是将您的应用程序/服务设计为能够抵御其他服务的故障。请记住,在应用程序的生命周期中(服务更新,网络暂时不可用,节点甚至数据中心可能会崩溃),服务可能会随时中断。

如果服务依赖于其他服务,您可以(例如)实现重试循环;一个简单的例子可以在官方的WordPress图像中找到,它有一个重试循环来检查数据库服务器是否可用,并接受连接; https://github.com/docker-library/wordpress/blob/637afb53dc03b4af19149a0880e796346f97c137/php5.6/apache/docker-entrypoint.sh#L170-L181

相关问题