如何使用Swarm进行故障转移和负载平衡

我们正在使用docker,因为1/2年的“单一主机”设置没有麻烦。 但是现在我们想进一步使用Docker Swarm(最新版本)。

我们之前的设置只是将nginx作为Reverse-Proxys的单个主机,以及一些用于更新configuration并为新服务请求SSL证书的魔法。

我不明白:如何使用Docker Swarm设置故障转移/ HA

例如:

  • 3个虚拟机都是Master + Worker(我知道不是完美的设置,但是我们必须省钱)。

现在让我们说GoDaddy与像myswarm.com这样的域名,这个域名必须设置为一个外部IP,我会selectSwarms虚拟机的外部IP地址,它应该可以工作。

但是当链接到域的虚拟机出现故障时会发生什么? 如何用Docker处理这种情况? 还是我需要2个HAProxy虚拟机和一些面向外部的VIP?

IP地址必须分配给主机操作系统可用的networking接口。 群中的所有节点都必须能够访问IP地址的pipe理者。

由于其他节点在其IP地址上联系pipe理器节点,因此应使用固定的IP地址。

您可以在Linux或MacOS上运行ifconfig以查看可用networking接口的列表。

如果您使用的是Docker Machine,则可以使用docker-machine ls or docker-machine ip <MACHINE-NAME>获取pipe理器IP,例如, docker-machine ip manager1

来源: https : //docs.docker.com/engine/swarm/swarm-tutorial/#the-ip-address-of-the-manager-machine

此外,该指导应该有助于在Docker Swarm中部署HA http://docs.master.dockerproject.org/swarm/multimanager-setup/