Docker Swarm的文件存储

我一直在寻找几个星期来为我的Docker Swarm实现的持久分布式文件存储的合适的解决scheme无济于事。

我在群中有三个节点,多个应用程序的多个实例运行得非常好。

我现在正处在我需要在每个应用程序的存储上保持一致性的地步,但我似乎无法find任何直接的解决scheme来解决这个问题。

我想尽可能采用最less的可configuration方法。

我有一个单一的集群,有三个节点,我们只是说一个应用程序在每个实例上运行。

这里最好的select是什么:1.我有一些文件复制到我的每个节点2.我有一些文件复制到我的每个容器3.我用一个单独的文件存储,我连接我的节点4.我使用一个单独的文件存储,我连接我的容器

无论哪种方式,我至less需要一些复制forms的冗余。

感谢任何人都可以select正确的课程!

好的performance/storage space明智,复制不是答案,您需要shared storage解决scheme。 就像我们在Server Virtualization使用的一样。 如果你有现金的话,那里有很多的SAN存储品牌。

现在,如果您拥有与我一样的virtualization infrastructure (本例中为vmware vsphere ),则可以使用可用的SAN Datastores存储库通过docker-volume vsphere驱动程序存储卷。 您将在vmware datastores上创builddocker卷,并在docker swarm之间共享,以便在发生故障的情况下,docker将在swarm中的另一个节点上启动容器(其卷上的持久数据)。

其他供应商也有类似的drivers (虚拟化/存储)。

有基于云的解决scheme,您可以使用Cephglusterfsflocker或其他开源分布式文件系统来存储您的容器persistent data

Docker的路线图是实现分布式的音量驱动,最有前途的是无限的 。 他们将支持所有群集节点的分布,并且从我所看到的devise中可以看到非常好的性能。

这可能需要至less6个月才能成熟,直到您需要使用连接到所有节点的一些共享存储。 (最简单的是NFS

所以这个想法是在所有节点上安装一个共享文件夹并使用它

 docker run -v /nfsShare:/container/folder 

如果你运行一个容器,或者如果你部署一个服务

 docker service create -mount type=bind,src=/nfsShare,dst=/container/folder 

如果docker主机在高山上运行,则可以使用我创build的映像来自动执行该过程。

以下链接介绍了如何使用它: https : //www.vip-consult.solutions/post/persistent-storage-docker-swarm-nfs#content