Docker Swarm 1.12的DNS故障转移

我想为我写的web服务设置一个故障转移。 到处都是我读的Docker群1.12自动故障转移,但我认为只有失败的容器。

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

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

使用普通的dns循环和节点IP将无法工作。 每n个请求将失败n服务器。 如果一台主机closures,Docker路由网格不起作用。 还是我想念这里的东西?

供参考:目前我不使用docker群,但我打算这样做。

你有几个select:

  • 如果您使用的是像amazonaws这样的云提供程序,那么您可以使用ELB或您的云提供程序提供的负载平衡器,它们通常支持模式TCP和健康检查。 然后你将你的DNS指向负载平衡器。 通过这种方式,当节点发生故障时,它将通过健康检查从负载平衡器中移除,并在健康状况再次恢复时恢复。

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

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