【问题标题】:Docker Swarm Service IP High-availabilityDocker Swarm 服务 IP 高可用
【发布时间】:2018-02-01 08:54:42
【问题描述】:

我已经构建了一个 docker swarm 集群(6 个节点)。 尽管我能够构建弹性服务(多个节点通过多个实例响应对同一服务的请求),但我无法找到一种方法来构建高可用性 IP 级别服务(使用单个公共 IP 地址)以防管理器节点发生故障.

docker swarm 集群参考架构是否始终位于外部负载均衡器(IP 或 DNS)或反向代理之后?还是基于软件的老式 vIP(起搏器)?

我感觉我的集群没有自我恢复能力(就像我的 vSphere 集群为虚拟机提供高可用性一样),而且我总是在某个地方出现单点故障。

有没有办法桥接 docker swarm 主机公共网络?

【问题讨论】:

  • 嗨@Fabio,你能解决这个问题吗?

标签: docker swarm


【解决方案1】:
  1. 您应该至少有 3 名经理才能成为 HA。
  2. 您没有提及您的托管环境,但在多个主机之间共享一个 IP 是大多数云托管商不支持的操作系统级功能。
  3. 如果您只是将 Web 应用程序发布给 Swarm 外部的用户,您可以依赖多个 A 记录(您希望接收流量的每个 Swarm 主机的每个公共 IP 一个)进行 DNS 轮询故障转移。所有现代浏览器都支持将此作为 HA 方法,并且客户端将提取所有 A 记录并在列表中无响应时自动重试新记录。
  4. 大多数云主机都有一个负载平衡器选项,它提供一个单一 IP 来路由到您的 Swarm 节点。这似乎是大多数人所做的,也是用于 AWS/Azure 模板的 Docker(来自 https://store.docker.com

我在我的"Taking Docker to Production" session from DockerCon EU 2017 中谈论了很多这些话题(对不起,该网站需要电子邮件才能观看)。

【讨论】:

  • 谢谢。正如我在帖子中所说,我几乎可以肯定 docker it self 没有提供操作系统级别的容错。您询问了我的托管环境:我安装了两台由 vCenter 管理的 ESXi 主机。由于非常具体的原因,我在节点之间没有共享存储,因此我无法启用 vSphere HA。我认为 docker 编排解决方案可以通过 glusterfs 和高可用性为遗留应用程序提供非常基本的服务(老式 dns 服务器、dhcp、ldap 等)的优雅解决方案。
  • 是的,对于与 docker 的共享存储,您可以查看卷插件,它们列在 store.docker.com
猜你喜欢
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多