2016-10-30 17 views
2

Docker Swarm実装で永続的な分散ファイルストレージを使用するのに適したソリューションを今何週間も探しています。Docker Swarm用のファイルストレージ

私はswarmに3つのノードを持っています。複数のアプリケーションの複数のインスタンスが完全に正常に動作しています。

私はそれぞれのアプリケーションでストレージの一貫性が必要なところにいるが、問題の解決策を見つけられないようだ。

できるだけ少なく構成可能なアプローチを採用したいと考えています。

私は3つのノードを持つ1つのクラスタを持っていて、それぞれのノード上で実行されているアプリケーションのインスタンスを言うことにします。ここでは最良のオプションは何

: 1.私は私のノードの各 2.間でファイルを複製するために何かを持って、私は私のコンテナの各間でファイルを複製するために何かを持っている 3.私は別のファイル・ストアを使用私のノードを に接続する4.コンテナを接続する別のファイルストアを使用する

いずれにしても、冗長性のために最低限の複製方法が必要です。

誰かが正しいコースで私をいくつかのオプションで設定できるかどうか鑑賞してください!

+1

GlusterFS:ここ

はそれを使用する方法について説明したリンクです。しかし、どのような分散ファイルシステムでも可能です。 –

答えて

3

井戸performance/storage space賢明です、複製は答えではありません。shared storageで解決策が必要です。 Server Virtualizationで使用しているものと同様です。あなたが現金を持っている場合、そこに多くのSANストレージブランドがあります。あなたは私のような場所でvirtualization infrastructure(私の場合はvmware vsphere)を持っている場合

は今、あなたはdocker-volume vsphere driverを経由して、ボリュームを格納するのに利用できるSAN Datastoresを使用することができます。 vmware datastoresにドッカーボリュームを作成し、docker swarmの間でこれらのボリュームを共有します。そのため、障害ドッカーがswarmの別のノードでコンテナを(ボリューム上の永続データとともに)起動します。

他のベンダー(仮想化/ストレージ)にも同様のdriversがあります。

クラウドベースのソリューションがありますが、あなたはあなたのコンテナpersistent dataを格納するためCephglusterfsflockerまたは他のオープンソースの分散ファイルシステムを使用することができます。

1

ドッカーのロードマップは、分散ボリュームドライバを実装することで、最も有望な1は無限大からです。彼らはすべてのswarmノード間での配布をサポートし、私はデザインが非常に良い性能を約束していることを見てきました。

これはおそらく、成熟するまでに、そしてすべてのノードに接続された共有ストレージを使用する必要があるまで、少なくとも6ヶ月はかかるでしょう。 (最も簡単な1がNFSある)

だから、アイデアは、すべてのノード上の共有フォルダをマウントして、コンテナを実行するか、またはあなたがサービスを展開する場合

場合

docker run -v /nfsShare:/container/folder 

を使用することです

docker service create -mount type=bind,src=/nfsShare,dst=/container/folder 

ドッカーホストがアルパインで実行されている場合は、プロセスを自動化するために作成したイメージを使用できます。 https://www.vip-consult.solutions/post/persistent-storage-docker-swarm-nfs#content

関連する問題