【问题标题】:DNS failover with Docker Swarm 1.12使用 Docker Swarm 1.12 进行 DNS 故障转移
【发布时间】:2017-08-03 11:57:00
【问题描述】:

我想为我编写的 Web 服务设置故障转移。 我到处都读到 docker swarm 1.12 会自动进行故障转移,但我认为只适用于失败的容器。

我应该如何为我的服务配置公共 DNS?

如果主机停机,故障转移如何工作?

使用正常的 dns 循环和节点的 IP,它将无法正常工作。对于 n 个服务器,每第 n 个请求都会失败。如果一台主机关闭,docker route 网格将无济于事。还是我错过了什么?

仅供参考:目前我没有使用 docker swarm,但我打算这样做。

【问题讨论】:

    标签: docker dns docker-swarm


    【解决方案1】:

    你有几个选择:

    • 如果您使用像 amazonaws 这样的云提供商,您可以使用 ELB 或您的云提供商提供的任何负载均衡器,它们通常支持 TCP 模式和运行状况检查。然后你将把你的 dns 指向负载均衡器。这样,当一个节点发生故障时,它会通过健康检查从负载均衡器中移除,并在它再次健康时恢复。

    • 您可以使用自己的负载平衡器。 HAproxy 和 Nginx 支持 TCP 模式,您可以设置健康检查规则。当一个节点发生故障时,它将通过健康检查从负载均衡器中删除,并在它再次健康时恢复。确保通过 keepalived 等工具提供 HighAvailablity,这样负载均衡器就不会成为故障点。

    请注意,这适用于 TCP 流量,因为许多负载均衡器不支持 UDP 流量。

    【讨论】:

    • 感谢您的回答。目前我正在使用您的第二个选项。但在这里我有同样的问题。节点(运行负载均衡器容器之一)何时关闭?我可以在这里做什么?我想更新 DNS 循环?
    猜你喜欢
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 2018-12-28
    • 2013-01-25
    • 2016-01-04
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    相关资源
    最近更新 更多