很抱歉,这可能是一个广泛的问题,但我还没有找到解决这个问题的方法。
我尝试通过Marathon使用 Docker 容器在Mesos上运行 Elasticsearch 集群。因此,我构建了一个可以在 Marathon 上启动并通过前端或 API 动态扩展的Docker 映像。
这对测试设置很有用,但问题仍然是如何保存数据,以便如果集群缩小(我知道这也是关于索引配置本身)或停止,我想稍后重新启动(或扩大) 具有相同的数据。
问题是 Marathon 决定节点在哪里运行(在哪个 Mesos Slave 上),所以从我的角度来看,当我尝试将数据持久保存到Docker 主机通过 Docker 卷。
我想到的唯一的事情是:
使用 HDFS 或 NFS 等分布式文件系统,在 Docker 主机或 Docker 映像本身上安装卷。尽管如此,如果“旧”集群有 8 个节点,而新集群只有 4 个节点,那么在新集群启动期间如何加载所有数据仍然存在问题。
使用 Elasticsearch 的Snapshot API保存到网络中某处的公共驱动器。我认为这会带来性能损失......
还有其他方法可以解决这个问题吗?有什么建议吗?不幸的是,我没有找到关于这类主题的好资源。提前非常感谢。