docker - 生产中 - HA

docker - in production - HA

如何使用 active/active 或 active/standby 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 容器的最佳实践是什么,以使其具有高可用性。

问候

持久存储在 container/docker 世界中仍然有点像房间里的大象。

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

容器 space 中发生了很多事情,并且有一个 volume plugins that integrates directly into Docker. One of the volume plugins/solutions that is gaining the most momentum is Flocker,值得研究。

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

然后您可以使用 Kubernetes, Docker Swarm, or Docker Datacenter 之类的东西来 manage/monitor 这些容器。