Docker 集群 NFS 卷,

Docker swarm NFS volumes,

我正在玩 docker 的 1.12 swarm with Orchestration!但是有一个问题我找不到答案:

  1. 在这种情况下,如果您是 运行 像 nginx 或 redis 这样的服务,您不必担心数据持久性,

  2. 但是,如果您是 运行 数据库之类的服务,我们需要数据持久性,因此如果您的 docker 实例出现问题,master 将传送 docker 实例到可用节点之一,默认情况下 docker 不会将数据卷移动到其他节点以解决此问题。我们可以使用 Flocker (https://github.com/ClusterHQ/flocker), Rexray ("https://github.com/emccode/rexray") 等第三方插件来解决这个问题。

  3. 但这样做的问题是:当一个节点发生故障时,您将丢失数据。 Flocker 或 Rexray 不处理这个问题。

  4. 如果我们使用NFS之类的东西就可以解决这个问题。我将相同的卷安装到我的节点之间,在这种情况下我们不必在两个节点之间移动数据。如果其中一个节点因需要记住 docker 挂载位置而失败,我们可以这样做吗?如果是这样,我们能否通过 docker Swarm 内置编排来实现这一目标!

使用 Rexray,然后将数据存储在 docker 集群节点之外(在 Amazon S3、Openstack Cinder 中,...)。所以如果你丢失了一个节点,你就不会丢失你的持久数据。如果您的调度程序安装了一个需要另一台主机上的数据的新容器,它将使用 rexray 插件检索外部卷,您就可以开始了。

注意:您的外部提供商需要允许您从现在不可用的旧节点执行卷的强制分离。