我想为我编写的网络服务设置故障转移。 无处不在我读到docker swarm 1.12进行自动故障转移,但我认为只适用于失败的容器。
我应该如何为我的服务配置公共DNS?
如果主机关闭,故障转移如何工作?
使用正常的dns循环和节点的IP,它将无法正常工作。 n个服务器的每个第n个请求都将失败。如果一台主机关闭,则docker路由网格无效。或者我会在这里错过什么?
仅供参考:目前我没有使用泊坞游戏群,但我正在计划这样做。
答案 0 :(得分:0)
你有几个选择:
如果您使用像amazonaws这样的云提供商,您可以使用ELB或您的cloudprovider提供的任何负载均衡器,它们通常支持模式TCP和健康检查。然后你会将你的dns指向负载均衡器。这样,当一个节点出现故障时,它将通过健康检查从负载均衡器中删除,并在它再次健康时恢复。
您可以使用自己的负载均衡器。 HAproxy和Nginx支持TCP模式,您可以设置healthcheck规则。当节点发生故障时,它将通过健康检查从负载均衡器中删除,并在它再次健康时返回。确保通过keepalived等工具提供HighAvailablity,这样负载均衡器就不会成为故障点。
请注意,这适用于TCP流量,因为许多负载均衡器不支持UDP流量。