发布于 2017-11-13 13:17:55
数据库和类似的有状态应用程序在涉及Docker和其他编排框架时仍然是一件很难处理的事情。理想情况下,容器应该能够在集群中的任何节点上运行,但是当您需要将数据持久化到容器生命周期之外时,问题就出现了。
挂载卷是持久化数据的Docker方式,但是这会将容器与特定节点联系起来,因为卷是在特定节点上创建的。有许多项目试图解决这个问题,并提供某种类型的分布式存储。
有一个名为絮凝器的项目处理上述问题(不再维护)。还有一个名为雷克雷的新项目。
Docker & Docker群是否足够聪明,能够在所需的机器上安装卷?
默认情况下不。码头群将选择其中一个节点,并在其上部署容器。但是,您可以解决这个问题:
首先,您需要在服务定义下的Stackfile/Composefile中定义一个命名卷。其次,您需要使用节点放置约束来限制数据库容器应该运行的位置。
如果您不是分布式存储工具,那么当涉及到需要卷的数据库和类似的有状态容器时,您需要将容器限制在特定的节点上。
https://stackoverflow.com/questions/47264614
复制相似问题