如何在生产中使用主动/主动或主动/备用HA系统运行docker?有什么指南或最佳实践吗?
我想到了三种情况:
1) NFS——对于两个服务器——它们准备了docker-machine
并将共享NFS装载到/var/lib/docker/
——因此两个docker节点都应该看到相同的文件。(使用某种文件管理器,如vnx、efs等。)
2) 使用DRBD复制磁盘并将其装载到:/var/lib/docker/
,这样数据就在两个节点上,活动节点可以装载它并运行容器,在发生故障转移的情况下,其他节点装载并启动容器
3) 使用DRBD-如上所述-并导出NFS服务器,将两个节点上的NFS挂载到:/var/lib/docker/
-以便两个节点都可以挂载并运行容器,使用心跳/起搏器传输虚拟IP&DRBD切换
在生产中运行docker容器以使其高可用性的最佳实践是什么。
关于
在容器/码头世界中,持久存储仍然是房间里的大象。
我不建议使用你建议的任何方法。唯一的例外是将某些特定数据放入共享卷(使用卷装载)(但不是整个/var/lib/docker
)。
容器空间中有很多事情正在进行,并且有一个卷插件可以直接集成到Docker中。Flocker是最受欢迎的批量插件/解决方案之一,值得研究。
一旦您将数据从容器中移出,设置HA系统就会变得容易得多,因为容器或多或少会变得短暂。
然后,您可以使用Kubernetes、Docker Swarm或Docker Datacenter来管理/监控这些容器。