投票配置排除 API编辑

将主节点候选节点添加到 投票配置排除列表 或从中移除。

请求编辑

POST /_cluster/voting_config_exclusions?node_names=<node_names>

POST /_cluster/voting_config_exclusions?node_ids=<node_ids>

DELETE /_cluster/voting_config_exclusions

先决条件编辑

  • 如果启用了 Elasticsearch 安全功能,您必须具有 manage 集群权限 才能使用此 API。
  • 如果启用了 操作员权限功能,则只有操作员用户才能使用此 API。

描述编辑

默认情况下,如果集群中存在三个以上的主节点候选节点,并且您一次性移除集群中不到一半的主节点候选节点,则 投票配置 会自动缩减。

如果您想将投票配置缩减为少于三个节点,或者一次性移除集群中一半或更多主节点候选节点,请使用此 API 手动将离开的节点从投票配置中移除。该 API 会在集群的投票配置排除列表中为每个指定的节点添加一个条目。然后,它会等待集群重新配置其投票配置以排除指定的节点。

在正常操作中,集群应该没有投票配置排除。一旦排除的节点停止,请使用 DELETE /_cluster/voting_config_exclusions 清除投票配置排除。此 API 会等待节点完全从集群中移除,然后返回。如果您的集群对您不再打算移除的节点存在投票配置排除,请使用 DELETE /_cluster/voting_config_exclusions?wait_for_removal=false 清除投票配置排除,而无需等待节点离开集群。

如果 API 失败,您可以安全地重试。只有成功的响应才能保证节点已从投票配置中移除,并且不会被恢复。

只有在您在短时间内从集群中移除至少一半的主节点候选节点时,才需要投票排除。在移除主节点不可用节点或少于一半的主节点候选节点时,不需要投票排除。

有关更多信息,请参阅 移除主节点候选节点

查询参数编辑

node_names
要从投票配置中排除的节点名称的逗号分隔列表。如果指定了此参数,则不能同时指定 ?node_ids。仅适用于此 API 的 POST 形式。
node_ids
要从投票配置中排除的节点持久 ID 的逗号分隔列表。如果指定了此参数,则不能同时指定 ?node_names。仅适用于此 API 的 POST 形式。
timeout
(可选,时间单位) 在添加投票配置排除时,API 会等待指定的节点从投票配置中排除,然后返回。等待的时间段由 ?timeout 查询参数指定。如果在满足相应条件之前超时,则请求失败并返回错误。默认值为 30s。仅适用于此 API 的 POST 形式。
master_timeout
(可选,时间单位) 定义尝试将请求路由到集群中当前主节点时要等待的时间。默认值为 30s。适用于此 API 的 POSTDELETE 形式。
wait_for_removal
(可选,布尔值) 指定是否等待所有排除的节点从集群中移除,然后再清除投票配置排除列表。默认值为 true,表示所有排除的节点必须从集群中移除,此 API 才会执行任何操作。如果设置为 false,则即使某些排除的节点仍在集群中,也会清除投票配置排除列表。仅适用于此 API 的 DELETE 形式。

示例编辑

将名为 nodeName1nodeName2 的节点添加到投票配置排除列表

POST /_cluster/voting_config_exclusions?node_names=nodeName1,nodeName2

从列表中移除所有排除项

DELETE /_cluster/voting_config_exclusions