在Docker swarm Mode(1.12 )中,可以创建所谓的'Global'服务,例如:
docker service create
--name redis_2
--mode global
redis:3.0.6
全球服务在每个节点上都处于活动状态。
当我添加一个新的节点以创建新的节点时,服务的顺序是什么?
swarm 保证 是否创建了全局服务 first (直到其HealthCheck通过),并且只有在该群体创建群会创建悬而未决的服务之后?
否,没有保证的订单。最佳实践是设计您的应用程序/服务以抵抗其他服务的失败。请记住,在您的应用程序生命周期期间的任何时间都可以中断服务(服务已更新,网络可能是暂时不可用的,节点甚至数据中心可能会降低)。
如果服务取决于另一个服务,则可以(例如)实现重试环;可以在官方WordPress映像中找到一个简单的示例,该图像具有重试循环,可以检查数据库服务器是否可用并接受连接;https://github.com/docker-library/wordpress/blob/637afb53b4af19149a08880e796346f97c137c137/php5.6/php5.6/php5.6/apache/dockache/dockache/docke/docker-endrypoint.sh#l170-l170-l170-l181-ph.l170-l181