docker—为动态elasticsearch群集保留节点数据的策略

bgtovc5b  于 2021-06-21  发布在  Mesos
关注(0)|答案(2)|浏览(307)

很抱歉,这可能是一个宽泛的问题,但我还没有找到解决这个问题的办法。
我试着用docker容器在mesos上运行elasticsearch集群。因此,我构建了一个docker映像,可以从marathon开始,并通过前端或api动态缩放。
这对于测试设置非常有用,但问题仍然是如何持久化数据,以便在集群缩小(我知道这也是关于索引配置本身)或停止时,我希望稍后使用相同的数据重新启动(或放大)。
问题是,marathon决定了节点运行的位置(在哪个mesos slave上),因此从我的Angular 来看,当我试图通过docker卷将数据持久化到docker主机时,如果重启时所有数据都可用于“新”节点,这是不可预测的。
我唯一想到的是:
使用像hdfs或nfs这样的分布式文件系统,在docker主机或docker映像本身上装载卷。不过,如果“旧”集群有8个节点,而新集群只有4个节点,那么在新集群启动期间如何加载所有数据仍然是个问题。
使用elasticsearch的快照api保存到网络中某个公共驱动器。我认为这将有性能惩罚。。。
有没有别的办法?有什么建议吗?不幸的是,我没有找到一个关于这类主题的好资源。提前多谢了。

yhxst69z

yhxst69z1#

elasticsearch和nfs不是最好的伙伴;-)。你不想在nfs上运行你的集群,它太慢了,当存储速度更好时,elasticsearch工作得更好。如果你在这个等式中引入网络,你会有麻烦的。我不知道docker和mesos。但我确实建议不要使用nfs。使用快照/还原。
第一个快照将花费一些时间,但其余快照将占用更少的空间和时间。另外,请注意,“增量”是指文件级的增量,而不是文档级的增量。
快照本身需要具有要快照的索引的主要索引的所有节点。这些节点都需要访问公共位置(存储库),以便可以写入。对同一地点的共同访问通常不是那么明显,这就是为什么我要提到它。

pb3skfrl

pb3skfrl2#

在mesos上运行elasticsearch的最佳方法是使用专门的mesos框架。第一个努力是这个领域是https://github.com/mesosphere/elasticsearch-mesos. 还有一个最近的项目,即afaik,目前正在开发中:https://github.com/mesos/elasticsearch. 我不知道情况如何,但你可以试试。

相关问题