集群Docker Swarm主机

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

我有一个拥有3个pipe理员的Docker群集模式群集。 让我们说他们有IP的

  • 192.168.1.10
  • 192.168.1.20
  • 192.168.1.30

我可以通过任何IP访问我的Web容器,通过内部路由网等。但是,当主机停下来我访问我的Web容器,我显然不会路由到容器了。 所以我需要某种单一的DNSlogging,或者是指向我的集群中的一个活动地址。

你们怎么做这个? 我应该将所有三个IP作为Alogging添加到DNS? 还是有一个负载均衡器/反向代理的盈亏?

我想有一个以上的解决scheme,很高兴听到别人如何解决这个问题:-)

非常感谢

假设你的web服务器启动了这样的东西:

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

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

部分路由网格function的devise目标的确是为了简化负载均衡configuration。 因为在我的示例中,群集的所有成员都在端口80上侦听,所以可以简单地将负载均衡器configuration为侦听所有三个IPS。 假设负载平衡器可以正确地检测到一个节点正在closures,那么任务将重新安排在集群中的某个位置,剩下的两个节点中的任何一个都可以通过路由网格路由stream量。