与 docker 群中的所有节点共享大文件

Share large file with all nodes in docker swarm

目前,我正在迁移到 Docker Swarm 并开始使用 docker 配置来卸载大部分配置文件,但我剩下的一个文件有几个 GB,供我使用瓷砖服务器。现在,我有一个 1 master / 4 worker,我正在寻找一种方法来与 swarm 中的所有节点共享该文件,以便为 tileserver 停机做准备。

有什么想法吗?

如果您需要高可用性数据,那么可以采用在节点(或服务器)之间分发数据的解决方案。

一种方法是将对象存储解决方案部署到 swarm 上——像 minio 之类的东西可以为您提供 s3 兼容的 REST api,并且当以纠删码模式部署至少 4 个磁盘时,可以容忍 1 个磁盘宕机写入和 2 个磁盘用于读取(假设每个磁盘有一个节点)。

如果重新调整你的应用程序以使用对象存储不在范围内,那么调查你想要安装在金属上而不是 docker 上的 glusterfs 之类的东西。 glusterfs 将在 3 个节点上为您提供具有良好 HA 的统一文件系统,您可以即时添加磁盘。

显然,对于 minio,您的应用程序会使用 s3 api 来访问其文件。使用 glusterfs,您需要将 gfs 卷挂载到容器所在的主机位置,然后挂载卷以访问该网络存储。 除非你愿意在 rex-ray 和其他社区支持的 docker 批量驱动程序的世界中徘徊,这些驱动程序要么已经多年没有更新,要么实际上是由一个人为了好玩而维护的,这可以带来一些第一个 class 支持基于 glusterfs 的 docker 卷到您希望的非生产 docker 群。