节点生命周期 API

edit

节点生命周期API

edit

此功能旨在供 Elasticsearch ServiceElastic Cloud EnterpriseElastic Cloud on Kubernetes 间接使用。不支持直接使用。

您可以使用关机API来准备节点进行临时或永久关机,监控关机状态,并使之前已关机的节点恢复到正常操作。

节点关闭API

edit

Put 关闭 API

edit

此功能旨在供 Elasticsearch ServiceElastic Cloud EnterpriseElastic Cloud on Kubernetes 间接使用。不支持直接使用。

准备一个节点以进行关闭。

请求

edit

PUT _nodes//shutdown

先决条件

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

描述

edit

根据需要将正在进行的任务和索引分片迁移到其他节点,以准备重新启动或关闭节点并将其从集群中移除。这确保了Elasticsearch可以安全停止,对集群的干扰最小。

您必须指定关机类型:restartremovereplace。 如果节点已经在准备关机, 您可以使用此API来更改关机类型。

此API不会终止Elasticsearch进程。 监控节点关闭状态以确定何时可以安全停止Elasticsearch。

路径参数

edit
<node-id>
(必需,字符串) 您希望准备关闭的节点的ID。 如果您指定了一个离线的节点, 它将在重新加入集群时准备关闭。

此参数不会根据集群的活动节点进行验证。 这使您可以在节点离线时为其注册关闭。 如果您指定无效的节点ID,不会抛出错误。

查询参数

edit
master_timeout
(可选,时间单位) 等待主节点的时间段。如果在超时到期之前主节点不可用,请求将失败并返回错误。默认为30s。 也可以设置为-1,表示请求不应超时。

请求体

edit
type
(必需,字符串) 有效值为 restartremovereplace。 使用 restart 当你需要临时关闭一个节点以执行升级、进行配置更改或执行其他维护时。 因为该节点预计会重新加入集群,数据不会从该节点迁移出去。 使用 remove 当你需要永久从集群中移除一个节点时。 在数据从该节点迁移出去之前,该节点不会被标记为准备关闭。 使用 replace 来执行一个节点与另一个节点的 1:1 替换。某些分配决策将被忽略(例如磁盘水位线),以实现源节点与目标节点的真正替换。在替换类型的关闭期间,滚动更新和索引创建可能会导致未分配的分片,并且在替换完成之前,收缩操作可能会失败。
reason
(必需,字符串) 一个易于理解的关闭节点的原因。 此字段为其他集群操作员提供信息; 它不会影响关闭过程。
allocation_delay
(可选,字符串) 仅在 typerestart 时有效。控制 Elasticsearch 在重新分配其分片到其他节点之前,等待节点重启并加入集群的时间。这与使用 index.unassigned.node_left.delayed_timeout 设置的 延迟分配 相同。如果你同时指定重启分配延迟和索引级别的分配延迟,则使用两者中较长的一个。
target_node_name
(可选, 字符串) 仅在 typereplace 时有效。指定正在替换正在关闭节点的节点的名称。仅允许将关闭节点的分片分配到目标节点,并且不会将其他数据分配到目标节点。在数据重新定位期间,某些分配规则将被忽略,例如磁盘水位线或用户属性过滤规则。

示例

edit

注册一个节点以进行关闭:

PUT /_nodes/USpTGYaBSIKbgSUJR2Z9lg/shutdown
{
  "type": "restart", 
  "reason": "Demonstrating how the node shutdown API works",
  "allocation_delay": "20m"
}

准备节点以进行重新启动。 对于将从集群中永久移除的节点,请使用 remove

获取关机 API

edit

此功能旨在供 Elasticsearch ServiceElastic Cloud EnterpriseElastic Cloud on Kubernetes 间接使用。不支持直接使用。

检索正在准备关机的节点的状态。

请求

edit

GET _nodes/shutdown

GET _nodes//shutdown

先决条件

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

描述

edit

指示节点是否已准备好关闭,或者关闭准备是否仍在进行中或已停滞。 返回关闭过程中每个部分的状态信息。 用于在调用put shutdown后监控关闭过程。

路径参数

edit
<node-id>
(可选, 字符串) 正在准备关闭的节点的ID。 如果未指定ID,则返回所有正在准备关闭的节点的状态。

示例

edit

准备一个节点以进行重启:

PUT /_nodes/USpTGYaBSIKbgSUJR2Z9lg/shutdown
{
  "type": "restart",
  "reason": "Demonstrating how the node shutdown API works",
  "allocation_delay": "10m"
}

获取关机准备状态:

GET /_nodes/USpTGYaBSIKbgSUJR2Z9lg/shutdown

响应显示了有关关闭准备的信息,包括分片迁移、任务迁移和插件清理的状态:

{
    "nodes": [
        {
            "node_id": "USpTGYaBSIKbgSUJR2Z9lg",
            "type": "RESTART",
            "reason": "Demonstrating how the node shutdown API works",
            "shutdown_startedmillis": 1624406108685,
            "allocation_delay": "10m",
            "status": "COMPLETE",
            "shard_migration": {
                "status": "COMPLETE",
                "shard_migrations_remaining": 0,
                "explanation": "no shard relocation is necessary for a node restart"
            },
            "persistent_tasks": {
                "status": "COMPLETE"
            },
            "plugins": {
                "status": "COMPLETE"
            }
        }
    ]
}

删除关机 API

edit

此功能旨在供 Elasticsearch ServiceElastic Cloud EnterpriseElastic Cloud on Kubernetes 间接使用。不支持直接使用。

取消关机准备或清除关机请求,以便节点可以恢复正常的操作。

请求

edit

DELETE _nodes//shutdown

先决条件

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

描述

edit

使节点在接收到put shutdown请求后恢复正常的操作。当节点重新加入集群或节点永久离开集群时,您必须显式清除关闭请求。Elasticsearch不会自动移除关闭请求。

路径参数

edit
<node-id>
(可选, 字符串) 用于关机的节点的ID。

查询参数

edit
master_timeout
(可选,时间单位) 等待主节点的时间段。如果在超时到期之前主节点不可用,请求将失败并返回错误。默认为30s。 也可以设置为-1,表示请求不应超时。

示例

edit

准备一个节点以进行重启:

PUT /_nodes/USpTGYaBSIKbgSUJR2Z9lg/shutdown
{
  "type": "restart",
  "reason": "Demonstrating how the node shutdown API works"
}

取消关机准备或重启后清除关机请求:

DELETE /_nodes/USpTGYaBSIKbgSUJR2Z9lg/shutdown

返回以下响应:

{
    "acknowledged": true
}