Docker Swarm:处于分配状态的流量

时间:2019-06-05 13:37:53

标签: docker-swarm

当我将服务从1个节点(节点A)扩展到2个节点(节点A和节点B)时,我看到流量立即路由到两个节点(包括新的节点B,即使尚未准备就绪)

结果,Nginx代理将在一半时间内返回502(直到节点B准备就绪)。

您有什么建议可以延迟此流量吗?

注意:这不是在等待另一个容器的出现,如此处所述:Docker Compose wait for container X before starting Y 这是关于延迟网络连接,直到容器准备就绪。

1 个答案:

答案 0 :(得分:0)

如果您未配置healthcheck部分,则docker将假定容器在启动后立即可用。

请注意,仅在集合interval之后进行初始运行状况检查。

因此,您可以添加一些非常基本的内容,例如测试端口80是否可连接(docker映像中需要nc):

healthcheck:
  test: nc -w 1 127.0.0.1 80 < /dev/null
  interval: 30s
  timeout: 10s
  retries: 3
  start_period: 5s