目前无法升级,我只能使用 Elasticsearch 5.6。
尝试在 GKE 上成功运行集群模式,但有一个主要问题。每当我对 Elasticsearch 集群进行滚动重启 (
StatefulSet
) 时,集群都会进入红色状态,无法恢复。不过,这种情况不会一直发生,如果我只杀死一个节点(三个节点中的一个),它就可以完美地工作。
由于某种原因,重新启动的节点无法在启动时恢复其主/副本分片。或者下一个节点在分片分配完成之前提前终止?
无论如何,我都在寻找一个选项,将每个索引完全保留在每个节点上(主分片和副本分片的混合)。不知道如何正确配置。
如何配置具有三个节点和两个索引的 Elasticsearch 集群才能在两个节点中断时幸存下来?
编辑:https://www.elastic.co/guide/en/elasticsearch/reference/5.6/delayed-allocation.html可能是我需要的,不是吗?
A StatefulSet 是一种在分布式系统中创建有状态组件的方法。因此,Pod 旨在以其自己的状态独立执行。事实上,StatefulSet 具有唯一的序数索引、稳定的网络标识,并且如果停止,其数据对于正在运行的节点是不可见的。 这是访问 PV/PVC 的框图:
PV - PVC - POD1 \
PV - PVC - POD2 - StatefulSet
PV - PVC - POD3 /
如果您需要在某些 pod 停止时继续访问数据,您可能需要一个 部署,而每个 pod 都访问 PV-PVC 上的相同数据:
/ POD1 \
PV - PVC - POD2 - Deployment
\ POD3 /
因此,为了满足您的要求,请尝试使用 Deployments 而不是 StatefulSet。