web-dev-qa-db-ja.com

Dockerボリュームが使用されている場合、CoreOSはDockerコンテナーをどのように移行しますか?

CoreOSの使用方法を学んでいるところですが、最初の問題に遭遇しました。fleetctlを使用してユニットを起動および管理すると、マシンが実行することを選択したときに、ユニットが自動的に別のマシンに移動することがわかりました。別の理由で、ユニットが再起動するか、クラスターに到達できなくなります。特定のマシンにのみ存在する特定のディレクトリ(Dockerボリュームを介して)にアクセスできるDockerコンテナを実行しているユニットがある状況を想像してみてください。

このコンテナを実行しているユニットを別のマシンに移動するとどうなりますか? Dockerボリュームとしてマウントされるはずのディレクトリが新しいマシンに存在しないため、ユニットが失敗すると思います。これは実際に起こりますか?そして、どうすればこの問題を回避できますか?一般に、コンテナーの自動移行の状況で、Dockerコンテナーによって使用される作業データを保持するにはどうすればよいですか?

2
Ignatius Tremor

今のところ、データが利用可能であることを確認するのはあなたの責任だと思います。 https://github.com/ClusterHQ/flocker を確認することをお勧めします。これは、Dockerコンテナーと一緒にデータを取得するように特別に設計されています。 CoreOSでの使用を除外する可能性のあるZFS機能に依存していると思います。私が思いつくことができる唯一の代替手段は、CoreOSにマウントされた高可用性外部ボリュームを使用することです。

3
Andreas Steffan

CoreOSクラスター上で分散ファイルシステムを実行することを検討できます。このようにして、データベースサービスコンテナが終了するマシンが何であれ、DFSからマウントされたデータベースを常に使用できます。

0