我有一个使用 ECK 1.0 的 7.4.0 ES 集群,在我的 3 个专用主节点用完磁盘空间后,我将它们与卷一起删除以测试关键场景。
一旦创建了新的合格主人,他们就无法选举新成员。现在集群永远卡住了,尽管它看到了新的符合条件的主服务器(k8s 中的 pod)。
有没有办法强制 ES 选举一个新的主人,即使以前的主人不在了?
请注意,主人没有数据。所有数据都驻留在仅数据节点上。不幸的是,只要没有选出主人,我就无法访问它们。
我有一个使用 ECK 1.0 的 7.4.0 ES 集群,在我的 3 个专用主节点用完磁盘空间后,我将它们与卷一起删除以测试关键场景。
一旦创建了新的合格主人,他们就无法选举新成员。现在集群永远卡住了,尽管它看到了新的符合条件的主服务器(k8s 中的 pod)。
有没有办法强制 ES 选举一个新的主人,即使以前的主人不在了?
请注意,主人没有数据。所有数据都驻留在仅数据节点上。不幸的是,只要没有选出主人,我就无法访问它们。
请注意,主人没有数据。
这不是真的。主节点保存 Elasticsearch 正确理解存储在数据节点上的数据所需的集群元数据。由于您已删除元数据,因此数据节点上的数据实际上毫无意义。
此时,您最好的选择是重新开始使用新集群并从最近的快照中恢复数据。
由于还没有快照,我决定将数据节点引入一个新的集群。
I recreated the 3 master nodes and made sure they joined a new cluster with an elected master. 之后,我将数据节点从之前的集群中分离出来,并让它们与新集群关联。我知道风险,幸运的是,除了我的 xpack 安全凭证外,我没有丢失数据。
我按照这里的过程并通过更新 statefulset 的 init 容器来适应我的 ECK 案例。
在经历了这样的痛苦之后,我再怎么强调快照的价值都不过分。