关闭 API
编辑关闭 API
编辑此功能旨在由 Elasticsearch Service、Elastic Cloud Enterprise 和 Elastic Cloud on Kubernetes 间接使用。不支持直接使用。
准备关闭节点。
请求
编辑PUT _nodes/<节点 ID>/shutdown
描述
编辑根据需要将正在进行的任务和索引分片迁移到其他节点,以准备重新启动或关闭节点并将其从集群中移除。这确保了 Elasticsearch 可以安全停止,同时对集群的干扰最小。
您必须指定关闭类型:restart
、remove
或 replace
。如果某个节点正在准备关闭,您可以使用此 API 更改关闭类型。
此 API 不会 终止 Elasticsearch 进程。请监控节点关闭状态,以确定何时可以安全停止 Elasticsearch。
路径参数
编辑-
<节点 ID>
- (必需,字符串)您要准备关闭的节点的 ID。如果您指定一个离线的节点,它将在重新加入集群时准备关闭。
此参数 不会 针对集群的活动节点进行验证。这使您可以在节点离线时注册该节点以进行关闭。如果指定无效的节点 ID,则不会引发错误。
请求主体
编辑-
type
- (必需,字符串)有效值是
restart
、remove
或replace
。当您需要临时关闭节点以执行升级、进行配置更改或执行其他维护时,请使用restart
。由于节点预计会重新加入集群,因此数据不会从节点迁移出去。当您需要从集群中永久移除节点时,请使用remove
。在数据从节点迁移出去之前,该节点不会被标记为准备好关闭。使用replace
对节点进行 1:1 的替换。出于真实替换源节点和目标节点的考虑,某些分配决策将被忽略(例如磁盘水位线)。在 replace 类型的关闭期间,滚动更新和索引创建可能会导致未分配的分片,并且在替换完成之前,收缩可能会失败。 -
reason
- (必需,字符串)节点被关闭的原因,以人类可读的形式呈现。此字段为其他集群操作员提供信息;它不会影响关闭过程。
-
allocation_delay
- (可选,字符串)仅当
type
为restart
时有效。控制 Elasticsearch 在重新分配其分片到其他节点之前,等待节点重新启动并加入集群的时间。这与使用index.unassigned.node_left.delayed_timeout
设置延迟分配的工作方式相同。如果您同时指定了重新启动分配延迟和索引级别的分配延迟,则使用两者中较长的延迟。 -
target_node_name
- (可选,字符串)仅当
type
为replace
时有效。指定正在替换被关闭节点的节点的名称。来自被关闭节点的分片仅允许分配给目标节点,并且不会将其他数据分配给目标节点。在数据重新定位期间,某些分配规则将被忽略,例如磁盘水位线或用户属性过滤规则。
示例
编辑注册节点以进行关闭
resp = client.shutdown.put_node( node_id="USpTGYaBSIKbgSUJR2Z9lg", type="restart", reason="Demonstrating how the node shutdown API works", allocation_delay="20m", ) print(resp)
response = client.shutdown.put_node( node_id: 'USpTGYaBSIKbgSUJR2Z9lg', body: { type: 'restart', reason: 'Demonstrating how the node shutdown API works', allocation_delay: '20m' } ) puts response
const response = await client.shutdown.putNode({ node_id: "USpTGYaBSIKbgSUJR2Z9lg", type: "restart", reason: "Demonstrating how the node shutdown API works", allocation_delay: "20m", }); console.log(response);