1

这可能是一个简单的问题,但我想知道其他人是如何做到这一点的。

我有一个带有 3 个管理器的 Docker Swarm Mode 集群。可以说他们有IP

  • 192.168.1.10
  • 192.168.1.20
  • 192.168.1.30

我可以通过任何 IP、内部路由网格等访问我的 Web 容器。但如果主机出现故障,我访问我的 Web 容器的 IP 显然不会再被路由到容器。所以我需要某种单一的 DNS 记录或指向我集群中活动地址的东西。

你们是怎么做到的?我应该将所有三个 IP 作为 A 记录添加到 DNS 吗?或者在集群前面有一个负载均衡器/反向代理?

我想有不止一种解决方案,很高兴听到其他人如何解决这个问题:-)

非常感谢

4

1 回答 1

0

假设你的网络服务器是这样启动的:

docker service create --replicas=1 -p 80:80 nginx:alpine

如果副本因任何原因出现故障,集群将尝试重新安排该副本。只有 1 个副本,您可能会在旧任务消失和新任务在其他地方出现之间经历一些停机时间。

路由网格功能的部分设计目标确实是简化负载平衡配置。因为在我的示例中集群的所有成员都侦听端口 80,所以您的负载均衡器可以简单地配置为侦听所有三个 ip。假设负载均衡器可以正确检测到一个节点出现故障,任务将在集群中的某个位置重新调度,并且其余两个节点中的任何一个都能够通过路由网格路由流量。

于 2017-06-22T22:42:33.477 回答