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,您可以使用Ceph
, glusterfs
, flocker
或其他开源分布式文件系统来存储您的容器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