2016-08-01 119 views
2

我正在与Docker的1.12 swarm一起玩Orchestration!但有一个问题,我不能够找到一个答案:Docker swarm NFS卷,

  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 Swarm Built-In Orchestration来实现这一点!

回答

1

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

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