群集Docker Swarm主机

时间:2017-06-22 06:50:55

标签: docker load-balancing docker-swarm docker-swarm-mode

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

我有一个包含3个管理器的Docker Swarm模式群集。让我们说他们有IP的

  • 192.168.1.10
  • 192.168.1.20
  • 192.168.1.30

我可以通过任何IP访问我的网络容器,通过内部路由网格等。但是,随着IP我访问我的网络容器,我显然不会再被路由到容器。所以我需要某种单一的DNS记录或者指向我的群集中的活动地址的东西。

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

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

非常感谢

1 个答案:

答案 0 :(得分:0)

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

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

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

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