Elasticsearch 7.2.0:尚未发现或选举主节点,选举至少需要 X 个节点

2024-01-12

我正在尝试自动化 Kubernetes 集群中 Elasticsearch 节点的水平扩展和缩小过程。

最初,我在 Kubernetes 集群上部署了一个 Elasticsearch 集群(3 个主节点、3 个数据节点和 3 个摄取节点)。在哪里,cluster.initial_master_nodes was:

cluster.initial_master_nodes:
  - master-a
  - master-b
  - master-c

然后,我执行了缩容操作,将主节点数量3减少到1(出乎意料,但用于测试目的)。在执行此操作时,我删除了master-c, master-b节点并重新启动master-a具有以下设置的节点:

cluster.initial_master_nodes:
  - master-a

由于elasticsearch节点(或者pod)使用持久卷,重启节点后,master-a减慢以下日志:

"message": "master not discovered or elected yet, an election requires at least 2 nodes with ids from [TxdOAdryQ8GAeirXQHQL-g, VmtilfRIT6KDVv1R6MHGlw, KAJclUD2SM6rt9PxCGACSA], have discovered [] which is not a quorum; discovery will continue using [] from hosts providers and [{master-a}{VmtilfRIT6KDVv1R6MHGlw}{g29haPBLRha89dZJmclkrg}{10.244.0.95}{10.244.0.95:9300}{ml.machine_memory=12447109120, xpack.installed=true, ml.max_open_jobs=20}] from last-known cluster state; node term 5, last-accepted version 40 in term 5"  }

似乎正在努力寻找master-b and master-c.

问题:

  • 如何覆盖集群设置以便master-a不会搜索这些已删除的节点吗?

The cluster.initial_master_nodes设置仅在集群第一次启动时有效,但为了避免一些非常罕见的极端情况,一旦设置它,您就不应该更改它的值,通常您应该尽快将其从配置文件中删除。从参考手册 https://www.elastic.co/guide/en/elasticsearch/reference/current/discovery-settings.html#initial_master_nodes关于cluster.initial_master_nodes:

重新启动集群或向现有集群添加新节点时不应使用此设置。

除此之外,Elasticsearch 使用基于法定人数的选举协议 https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery-quorums.html并说道:

为了确保集群仍然可用,您不得同时停止投票配置中一半或更多的节点.

您已同时停止三个符合主节点资格的节点中的两个,占总数的一半以上,因此预计集群将不再工作。

参考手册还包含删除符合主节点资格的节点的说明 https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery-adding-removing-nodes.html#modules-discovery-removing-nodes您尚未关注的:

只要集群中至少有三个符合主节点资格的节点,作为一般规则,最好一次删除一个节点,以便集群有足够的时间自动调整投票配置并适应故障对新节点集的容忍级别。

如果只剩下两个符合主节点资格的节点,则两个节点都不能被安全删除,因为两个节点都需要可靠地取得进展。要删除其中一个节点,您必须首先通知 Elasticsearch 它不应该成为投票配置的一部分,并且投票权应该给予另一个节点。

它继续描述如何使用以下方法从投票配置中安全地删除不需要的节点POST /_cluster/voting_config_exclusions/node_name当缩小到单个节点时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch 7.2.0:尚未发现或选举主节点,选举至少需要 X 个节点 的相关文章

随机推荐

  • Tkinter - 将文本插入画布窗口

    我有一个 Tkinter 画布 其中填充了文本和画布窗口或小部件 使用create text and create window方法 我放置在画布上的小部件是文本小部件 我想在创建和放置它们后将文本插入其中 我不知道如何做到这一点 如果可能
  • 如何对数据框中的列进行重新排序?

    如何更改此输入 顺序为 时间 输入 输出 文件 Time In Out Files 1 2 3 4 2 3 4 5 对于此输出 顺序为 时间 输出 输入 文件 Time Out In Files 1 3 2 4 2 4 3 5 这是虚拟 R
  • 使用 urllib 发出 post 请求

    我正在尝试向 API 提供商提出请求 curl https api infermedica com dev parse X POST H App Id 4c177c H App Key 6852599182ba85d70066986ca2b
  • 如何将第三方 javascript 库与 ionic4 和电容器一起使用?

    使用 Ionic 4 Angular 应用程序和 Capacitor 安装第三方 javascript 库的正确方法是什么 我尝试安装克鲁克图书馆 https github com jackedgson crunker如下 npm inst
  • Angular 2 中不同页面的多种布局

    我有一个登录页面 只有 2 个输入 无页眉 无页脚 无侧边栏 当用户登录时 他应该导航到带有页眉 页脚和右侧导航栏的页面 内页唯一改变的是右侧内容 import Component from angular core import View
  • Android Studio 中相对布局问题中按钮顶部的进度条

    好吧 这是一个奇怪的问题 我希望有人能向我解释一下 我有一个自定义按钮布局 它创建一个按钮 按钮中间有一个圆形进度条 我的 XML 代码如下 然而我无法解决的是ProgressBar似乎出现在按钮后面 如果我将按钮背景设置为透明以外的任何内
  • Spring Boot 组件扫描不起作用

    我创建了一个示例 Spring Boot 应用程序 当服务类全部位于一个包中时 该应用程序运行得非常好 但如果服务类引用不同包中的另一个服务类 那么我会收到 BeanCreationException 应用程序的代码如下 主程序 java
  • GLEW:Apple Mach-O 链接器 (Id) 错误

    我试图在我的 Xcode 项目中使用 glew 但我得到了这个 Apple Mach O Linker Id Error Undefined symbols for architecture x86 64 我正在使用从他们下载的最新版本的g
  • Protocol buffers 从原始消息中检测类型

    是否可以检测原始协议缓冲区消息的类型 以字节 为单位 我遇到的情况是端点可以接收不同的消息 并且我需要能够在反序列化之前检测到类型 我正在使用 protobuf net 您无法单独检测类型 因为 protobuf 规范不会为此向流添加任何数
  • 如何使用presto查询hive数据

    我刚刚安装了 presto 当我使用 presto cli 查询 hive 数据时 出现以下错误 presto server node6 8080 catalog hive schema default presto default gt
  • Xcode 9 - 无法附加到 pid 进行框架单元测试

    使用时间机器从一台 Mac 迁移到另一台 Mac 后 我收到以下错误 无法附加到 pid 确保 项目标题 尚未运行 并且 系统用户名 有调试权限 仅当运行 任何 框架项目的单元测试时才会发生该错误 在模拟器和设备上运行应用程序效果很好 为应
  • 在 C# 中从 LINQ 提取 SQL 列扩展属性

    我有一个 SQL 表 每列都有扩展属性 有没有办法使用 Linq2SQL 从 C 中的 LINQ 访问这些 像 MS Description 之类的东西 不 据我所知 您可以编写一个与数据库中的存储进行对话的 SP 获取数据库对象名称和列名
  • 找不到 Storm 日志查看器页面

    我可以在多租户集群中提交拓扑作业 作业正在运行 但是 日志查看器页面不可用 有什么办法可以解决这个问题吗 在单击之前您需要启动日志查看器topology port查看日志查看器 要启动日志查看器 请运行 storm logviewer和你跑
  • 从二维列表中获取唯一元素

    我有一个二维列表 我像这样创建 Z1 0 for x in range 3 for y in range 4 然后我继续填充这个列表 这样Z1看起来像这样 1 2 3 4 5 6 2 3 1 2 5 1 我需要提取unique 1x3要点Z
  • 更改ios8扩展导航栏颜色

    我正在开发 iOS8 应用程序扩展 照片编辑扩展 我尝试过这些方法来更新导航栏颜色 但失败了 UINavigationBar appearance setBarTintColor UIColor yellowColor UINavigati
  • 如何用值向量填充索引矩阵

    我有一个矩阵 m idx 其中包含我想要索引的向量的位置元素 gt m idx 1 2 3 4 5 1 1 2 3 4 5 2 3 4 5 6 7 3 5 6 7 8 9 假设 x 是我的向量 x lt c 9 3 2 5 3 2 4 8
  • 2D 物理引擎:弹跳球与非弹性碰撞不会停止

    我用 Java 创建了一个简单的 2d 物理引擎 它使用圆形射弹和直墙 目前 对于每一帧 每个射弹的位置都会提前velocity 1 fps 之后速度每帧更新一次 碰撞检测使用先前位置和当前位置以点斜率形式定义一条线 检查该线是否与墙壁相交
  • 每 N 行重复一次 Excel 公式

    我正在尝试在 Excel 中添加一个重复公式 该公式将对每个科目的另一列 分数 中的一系列值进行求和 以获得每个科目的总分 我添加了以下公式 该公式似乎正确地合计了值 SUM 偏移 AO 2 ROW 424 424 0 424 1 You
  • 如何更改本机反应中警报的颜色

    如何在 React Native 中更改警报框的背景颜色 字体大小 我在单击按钮后发出警报 我不知道如何设计这个样式 谢谢您的帮助 Alert alert Plate Plate has been sent for printing tex
  • Elasticsearch 7.2.0:尚未发现或选举主节点,选举至少需要 X 个节点

    我正在尝试自动化 Kubernetes 集群中 Elasticsearch 节点的水平扩展和缩小过程 最初 我在 Kubernetes 集群上部署了一个 Elasticsearch 集群 3 个主节点 3 个数据节点和 3 个摄取节点 在哪