当我将服务从1个节点(节点A)扩展到2个节点(节点A和节点B)时,我看到流量立即路由到两个节点(包括新的节点B,即使尚未准备就绪)
结果,Nginx代理将在一半时间内返回502
(直到节点B准备就绪)。
您有什么建议可以延迟此流量吗?
注意:这不是在等待另一个容器的出现,如此处所述:Docker Compose wait for container X before starting Y 这是关于延迟网络连接,直到容器准备就绪。
答案 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