我们使用 Docker 已有一年半了,使用“单主机”设置,没有任何问题。但现在我们想更进一步,使用 Docker Swarm(最新版本)。
我们以前的设置只是单个主机,使用 nginx 作为反向代理,并有一些魔法来更新配置并为新服务请求 SSL 证书。
我不明白的是:如何使用 Docker Swarm 设置故障转移/HA
例如:
- 3 个虚拟机均充当主服务器 + 从服务器(我知道这不是完美的设置,但我们必须省钱)。
现在假设 GoDaddy 有一个域名,比如 myswarm.com,这个域名必须设置为一个外部 IP,我会选择 Swarms VM 的一个外部 IP,这样它就可以工作了。
但是,当链接到域的虚拟机发生故障时会发生什么?如何使用 Docker 处理这种情况?或者我是否需要另外 2 个带有 HAProxy 的虚拟机和一些面向外部的 VIP?
答案1
IP 地址必须分配给主机操作系统可用的网络接口。集群中的所有节点都必须能够通过该 IP 地址访问管理器。
由于其他节点通过其 IP 地址联系管理器节点,因此您应该使用固定的 IP 地址。
您可以ifconfig
在 Linux 或 macOS 上运行以查看可用网络接口的列表。
如果您正在使用 Docker Machine,则可以使用以下任一方式获取管理器 IP docker-machine ls or docker-machine ip <MACHINE-NAME>
— 例如docker-machine ip manager1
。
来源:https://docs.docker.com/engine/swarm/swarm-tutorial/#the-ip-address-of-the-manager-machine
此外,该指南应该有助于在 Docker Swarm 中部署 HAhttp://docs.master.dockerproject.org/swarm/multi-manager-setup/