2016-08-01 154 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插件檢索外部卷,並且您可以繼續。

注意:您的外部提供程序需要允許您從現在不可用的舊節點強制分離卷。