使用Docker Swarm 1.12进行DNS故障转移

时间:2017-03-13 12:51:58

标签: docker dns docker-swarm

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

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

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

使用正常的dns循环和节点的IP,它将无法正常工作。 n个服务器的每个第n个请求都将失败。如果一台主机关闭,则docker路由网格无效。或者我会在这里错过什么?

仅供参考:目前我没有使用泊坞游戏群,但我正在计划这样做。

1 个答案:

答案 0 :(得分:0)

你有几个选择:

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

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

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