我有一个使用ECK 1.0的7.4.0 ES集群,在我的3个专用主节点耗尽磁盘空间后,我将它们与卷一起删除,以测试关键场景。
一旦创建了新的合格大师,他们就无法选出新成员。现在,集群永远被卡住了,尽管它看到了新的符合主机条件的服务器(k8s中的pod(。
有没有办法迫使ES选出一个新的大师,即使之前的大师已经不在画面中了?
请注意,大师们没有任何数据。所有数据都驻留在仅限数据的节点上。不幸的是,只要没有选出大师,我就无法访问它们。
请注意,master没有数据。
这不是真的。主节点持有集群元数据,Elasticsearch需要这些元数据来正确理解存储在数据节点上的数据。由于您已经删除了元数据,因此数据节点上的数据实际上毫无意义。
此时,您的最佳选择是使用新群集重新启动,并从最近的快照中恢复数据。
由于还没有快照,我决定将数据节点引入一个新的集群。
我重新创建了3个主节点,并确保它们加入了一个具有选定主节点的新集群。然后,我将数据节点从它们以前的集群中分离出来,并让它们与新的集群相关联。我知道风险,幸运的是,除了我的xpack安全凭据之外,我没有丢失数据。
我遵循了这里的过程,并通过更新statefulset的init容器将其调整为适用于我的ECK情况。
在经历了这样的痛苦之后,我再怎么强调快照的价值也不为过。