申し訳ありませんが、これはおそらく一種の広範な質問ですが、この問題の解決策はまだ見つかりません.
Docker コンテナーを使用してMarathonを介してMesosで Elasticsearch クラスターを実行しようとしています。そのため、 Marathon で開始し、フロントエンドまたは API を介して動的にスケーリングできるDocker イメージを構築しました。
これはテストのセットアップには最適ですが、クラスターがスケールダウンされた場合 (これはインデックス構成自体に関することもわかっています)、停止した場合にデータを永続化する方法が残っており、後で再起動したい場合 (またはスケールアップしたい場合) ) 同じデータを使用します。
問題は、ノードが実行される場所 (どの Mesos スレーブ) が Marathon によって決定されることです。したがって、私の観点からは、再起動時にすべてのデータが「新しい」ノードで利用可能であるかどうかは予測できません。 Docker ボリューム経由の Docker ホスト。
私の頭に浮かぶ唯一のことは次のとおりです。
HDFS や NFS などの分散ファイル システムを使用し、ボリュームを Docker ホストまたは Docker イメージ自体にマウントします。それでも、「古い」クラスターにたとえば 8 つのノードがあり、新しいクラスターには 4 つしかない場合、新しいクラスターの起動中にすべてのデータをロードする方法については疑問が残ります。
Elasticsearchのスナップショット APIを使用して、ネットワーク内のどこかにある共通ドライブに保存します。これにはパフォーマンスのペナルティがあると思います...
これにアプローチする他の方法はありますか?推奨事項はありますか?残念ながら、この種のトピックに関する適切なリソースは見つかりませんでした。よろしくお願いします。