设置升级模式 API编辑

设置集群范围的 upgrade_mode 设置,为升级准备机器学习索引。

请求编辑

POST _ml/set_upgrade_mode

先决条件编辑

需要 manage_ml 集群权限。此权限包含在 machine_learning_admin 内置角色中。

描述编辑

升级集群时,在某些情况下,您必须重新启动节点并重新索引机器学习索引。在这些情况下,不能运行任何机器学习作业。您可以关闭机器学习作业,进行升级,然后再次打开所有作业。或者,您可以使用此 API 临时停止与作业和数据馈送相关的任务,并阻止打开新作业。您也可以在不需要重新索引机器学习索引的升级期间使用此 API,但在这种情况下,停止作业不是必需的。

有关更多信息,请参阅 升级 Elastic Stack

enabled=true 时,此 API 会临时停止所有作业和数据馈送任务,并禁止启动新的作业和数据馈送任务。

随后,您可以调用启用了参数设置为 false 的 API,这将导致机器学习作业和数据馈送返回到其所需状态。

您可以使用 获取机器学习信息 API 查看 upgrade_mode 设置的当前值。

upgrade_mode 设置为 true 时,无法打开新的机器学习作业。

查询参数编辑

enabled
(可选,布尔值)当 true 时,启用 upgrade_mode。默认为 false
timeout
(可选,时间)等待请求完成的时间。默认值为 30 秒。

示例编辑

以下示例为集群启用 upgrade_mode

response = client.ml.set_upgrade_mode(
  enabled: true,
  timeout: '10m'
)
puts response
POST _ml/set_upgrade_mode?enabled=true&timeout=10m

调用成功后,将返回确认响应。例如

{
  "acknowledged": true
}

仅当所有机器学习作业和数据馈送都已完成写入机器学习内部索引后,才会返回确认响应。这意味着可以安全地重新索引这些内部索引,而不会导致失败。您必须等待确认响应,然后再重新索引,以确保所有写入都已完成。

升级完成后,您必须将 upgrade_mode 设置为 false,以便机器学习作业再次开始运行。例如

response = client.ml.set_upgrade_mode(
  enabled: false,
  timeout: '10m'
)
puts response
POST _ml/set_upgrade_mode?enabled=false&timeout=10m