【问题标题】:docker - in production - HA码头工人-生产中-HA
【发布时间】:2015-11-23 07:14:05
【问题描述】:

如何在生产环境中使用主动/主动或主动/备用 HA 系统运行 docker? 有任何指南或最佳做法吗?

我正在考虑 3 个场景:

1) NFS - 用于两台服务器 - 准备好 docker-machine 并将共享 NFS 挂载到 /var/lib/docker/ - 所以两个 docker 节点应该看到相同的文件。 (使用某种文件管理器,如 vnx、efs 等。)

2) 使用 DRBD 复制磁盘 - 并将其挂载到:/var/lib/docker/ - 因此数据在两个节点上,并且活动节点可以挂载它并运行容器,以防故障转移另一个节点挂载并启动容器

3) 使用 DRBD - 如上所述 - 并导出 NFS 服务器,将两个节点上的 NFS 挂载到:/var/lib/docker/ - 如上所述,两个节点都可以挂载和运行容器,使用 Heartbeat/Pacemaker 来传输虚拟 IP & DRBD切换

在生产环境中运行 docker-containers 以使其具有高可用性的最佳做法是什么。

问候

【问题讨论】:

  • 有趣的问题! (通过谷歌找到它)。可惜没有答案也没有cmets。您是否尝试过服务器故障?
  • 现在还没有尝试过 serverfault。现在我已经做了一些独立的 docker 机器,前面有一个负载均衡器 - 容器通过共享 NFS(来自文件管理器)使用它们的非容器数据 - 但这并不是 100% 令人满意
  • RedHat 正在为此推动 GlusterFS,我还搜索了一个基于 LINBIT DRDB 的 DockerEngine 插件解决方案......我没有个人经验,当然确保 Docker 数据卷复制至关重要产品

标签: docker nfs heartbeat pacemaker drbd


【解决方案1】:

在容器/码头世界中,持久存储在某种程度上仍然是房间里的大象。

我不建议使用您建议的任何方法。唯一的例外是您将某些特定数据放到共享卷上(使用卷挂载)(但不是整个 /var/lib/docker)。

容器空间中发生了很多事情,有一个volume plugins 直接集成到 Docker 中。获得最大动力的音量插件/解决方案之一是Flocker,值得研究。

将数据移出容器后,设置 HA 系统会变得容易得多,因为容器或多或少会变得短暂。

然后您可以使用KubernetesDocker SwarmDocker Datacenter 之类的东西来管理/监控这些容器。

【讨论】:

  • 实际上我最终将更改/动态数据作为卷安装到容器中,并使用共享 NFS 支持它们。
  • 使用 volume 管理有状态的服务/数据和 container 到无状态的服务。然后用 K8s/Docker swarm/Apache mesos+marathon 编排容器……应该是比较成熟的做法吧。
猜你喜欢
  • 2020-08-14
  • 2017-02-01
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 2019-07-22
相关资源
最近更新 更多