Elasticsearch 集群在 ECK 上丢失之前的 master 后不会选出新的 master

Elasticseach cluster won't elect new master after losing the previous ones on ECK

我有一个使用 ECK 1.0 的 7.4.0 ES 集群,在我的 3 个专用主节点离开磁盘后 space,我将它们连同卷一起删除以测试关键场景。

一旦创建了新的符合条件的主人,他们将无法选举新成员。现在集群永远卡住了,尽管它看到了新的符合条件的主服务器(k8s 中的pods)。

有没有办法强制 ES 选择一个新的 master,即使以前的 master 不在画面中?

注意masters没有数据。所有数据都驻留在纯数据节点上。不幸的是,只要没有选出主人,我就无法访问它们。

Be aware that the masters had no data.

这不是真的。主节点保存 Elasticsearch 正确理解存储在数据节点上的数据所需的集群元数据。由于您删除了元数据,因此数据节点上的数据实际上毫无意义。

此时你最好的选择是重新开始一个新的集群并从最近的快照中恢复你的数据。

由于还没有快照,我决定将数据节点放入一个新的集群中。

我重新创建了 3 个主节点,并确保它们加入了一个新的集群,并选出了一个主节点。之后,我将数据节点从它们之前的集群中分离出来,并让它们与新集群相关联。我知道风险,幸运的是,除了我的 xpack 安全凭证外,我没有丢失任何数据。

我按照程序 here 并通过更新 statefulset 的初始容器对其进行了调整以适用于我的 ECK 案例。

经历了这样的痛苦,我怎么强调快照的价值都不为过。