节点生命周期 API
edit节点生命周期API
edit此功能旨在供 Elasticsearch Service、Elastic Cloud Enterprise 和 Elastic Cloud on Kubernetes 间接使用。不支持直接使用。
您可以使用关机API来准备节点进行临时或永久关机,监控关机状态,并使之前已关机的节点恢复到正常操作。
节点关闭API
editPut 关闭 API
edit此功能旨在供 Elasticsearch Service、Elastic Cloud Enterprise 和 Elastic Cloud on Kubernetes 间接使用。不支持直接使用。
准备一个节点以进行关闭。
请求
editPUT _nodes/
描述
edit根据需要将正在进行的任务和索引分片迁移到其他节点,以准备重新启动或关闭节点并将其从集群中移除。这确保了Elasticsearch可以安全停止,对集群的干扰最小。
您必须指定关机类型:restart
、remove
或 replace
。
如果节点已经在准备关机,
您可以使用此API来更改关机类型。
此API不会终止Elasticsearch进程。 监控节点关闭状态以确定何时可以安全停止Elasticsearch。
路径参数
edit-
<node-id>
- (必需,字符串) 您希望准备关闭的节点的ID。 如果您指定了一个离线的节点, 它将在重新加入集群时准备关闭。
此参数不会根据集群的活动节点进行验证。 这使您可以在节点离线时为其注册关闭。 如果您指定无效的节点ID,不会抛出错误。
请求体
edit-
type
-
(必需,字符串)
有效值为
restart
、remove
或replace
。 使用restart
当你需要临时关闭一个节点以执行升级、进行配置更改或执行其他维护时。 因为该节点预计会重新加入集群,数据不会从该节点迁移出去。 使用remove
当你需要永久从集群中移除一个节点时。 在数据从该节点迁移出去之前,该节点不会被标记为准备关闭。 使用replace
来执行一个节点与另一个节点的 1:1 替换。某些分配决策将被忽略(例如磁盘水位线),以实现源节点与目标节点的真正替换。在替换类型的关闭期间,滚动更新和索引创建可能会导致未分配的分片,并且在替换完成之前,收缩操作可能会失败。 -
reason
- (必需,字符串) 一个易于理解的关闭节点的原因。 此字段为其他集群操作员提供信息; 它不会影响关闭过程。
-
allocation_delay
-
(可选,字符串)
仅在
type
为restart
时有效。控制 Elasticsearch 在重新分配其分片到其他节点之前,等待节点重启并加入集群的时间。这与使用index.unassigned.node_left.delayed_timeout
设置的 延迟分配 相同。如果你同时指定重启分配延迟和索引级别的分配延迟,则使用两者中较长的一个。 -
target_node_name
-
(可选, 字符串)
仅在
type
为replace
时有效。指定正在替换正在关闭节点的节点的名称。仅允许将关闭节点的分片分配到目标节点,并且不会将其他数据分配到目标节点。在数据重新定位期间,某些分配规则将被忽略,例如磁盘水位线或用户属性过滤规则。
示例
edit注册一个节点以进行关闭:
获取关机 API
edit此功能旨在供 Elasticsearch Service、Elastic Cloud Enterprise 和 Elastic Cloud on Kubernetes 间接使用。不支持直接使用。
检索正在准备关机的节点的状态。
描述
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 Service、Elastic Cloud Enterprise 和 Elastic Cloud on Kubernetes 间接使用。不支持直接使用。
取消关机准备或清除关机请求,以便节点可以恢复正常的操作。
请求
editDELETE _nodes/
描述
edit使节点在接收到put shutdown请求后恢复正常的操作。当节点重新加入集群或节点永久离开集群时,您必须显式清除关闭请求。Elasticsearch不会自动移除关闭请求。
路径参数
edit-
<node-id>
- (可选, 字符串) 用于关机的节点的ID。
示例
edit准备一个节点以进行重启:
PUT /_nodes/USpTGYaBSIKbgSUJR2Z9lg/shutdown { "type": "restart", "reason": "Demonstrating how the node shutdown API works" }
取消关机准备或重启后清除关机请求:
DELETE /_nodes/USpTGYaBSIKbgSUJR2Z9lg/shutdown
返回以下响应:
{ "acknowledged": true }