0

对于我们的持续集成环境,我们想开始使用 docker swarm 和 compose 文件规范的最新版本 V3。(Docker 1.13.1 和 docker-compose 1.10.0)。

我们目前正在使用 V2,因此将所有内容部署到主机级别。

对于数据容器——数据库数据——或有状态的容器,在集群模式下本地卷是否可以工作,具有亲和力,以便数据库容器和数据容器驻留在同一主机上?说得通?

我们知道有几个插件可以处理分布式卷 -Flocker、NFS 等 --- 但我们不知道这种方案相对于本地卷的优缺点是什么,

使用 docker swarm,对于分布式有状态容器的情况,谁负责维护数据的一致性和同步?

非常感谢你的帮助

问候, 马拉诺

4

1 回答 1

0

对于数据容器——数据库数据——或有状态的容器,在集群模式下本地卷是否可以工作,具有亲和力,以便数据库容器和数据容器驻留在同一主机上?说得通?

swarm 模式的主要特点之一是为节点故障提供高可用性。使用亲和力将容器固定到单个节点将导致节点故障时服务中断。

现在,为了实现跨多个节点的绑定挂载/卷,您有以下选项:

  1. 在 swarm 节点上使用像 glusterfs、ceph 和...这样的集群文件系统,然后在您的服务定义中使用绑定挂载指向共享 fs。

  2. 使用可用于 docker 的众多存储驱动程序之一,这些驱动程序提供共享存储,如植绒、...

  3. 切换到 Kubernetes,并通过存储类和声明使用多个后端来利用自动卷配置。

我们知道有几个插件可以处理分布式卷 -Flocker、NFS 等 --- 但我们不知道这种方案相对于本地卷的优缺点是什么。

取决于解决方案、工作负载、应用程序,但主要优势是:您不需要使用亲和力,并且您也可以为有状态容器实现高可用性。尽管我建议您迁移到 Kubernetes 以获得更复杂的持久存储配置和规模处理。

使用 docker swarm,对于分布式有状态容器的情况,谁负责维护数据的一致性和同步性?

应用程序本身。云就绪应用程序会自动执行此操作。看看elasticsearch,cockroachdb,mongodb,...

于 2017-03-08T16:35:44.647 回答