mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-24 23:27:25 -04:00
146 lines
4.3 KiB
Text
146 lines
4.3 KiB
Text
[[update-desired-nodes]]
|
|
=== Create or update desired nodes API
|
|
++++
|
|
<titleabbrev>Create or update desired nodes</titleabbrev>
|
|
++++
|
|
|
|
NOTE: {cloud-only}
|
|
|
|
..New API reference
|
|
[sidebar]
|
|
--
|
|
For the most up-to-date API details, refer to {api-es}/group/endpoint-cluster[Cluster APIs].
|
|
--
|
|
|
|
Creates or updates the desired nodes.
|
|
|
|
[[update-desired-nodes-request]]
|
|
==== {api-request-title}
|
|
|
|
[source,console]
|
|
--------------------------------------------------
|
|
PUT /_internal/desired_nodes/<history_id>/<version>
|
|
{
|
|
"nodes" : [
|
|
{
|
|
"settings" : {
|
|
"node.name" : "instance-000187",
|
|
"node.external_id": "instance-000187",
|
|
"node.roles" : ["data_hot", "master"],
|
|
"node.attr.data" : "hot",
|
|
"node.attr.logical_availability_zone" : "zone-0"
|
|
},
|
|
"processors" : 8.0,
|
|
"memory" : "58gb",
|
|
"storage" : "2tb"
|
|
}
|
|
]
|
|
}
|
|
--------------------------------------------------
|
|
// TEST[s/<history_id>/test/]
|
|
// TEST[s/<version>/1/]
|
|
|
|
//////////////////////////
|
|
|
|
[source,console]
|
|
--------------------------------------------------
|
|
DELETE /_internal/desired_nodes
|
|
--------------------------------------------------
|
|
// TEST[continued]
|
|
|
|
//////////////////////////
|
|
|
|
[[update-desired-nodes-query-params]]
|
|
==== {api-query-parms-title}
|
|
|
|
include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=master-timeout]
|
|
|
|
`dry_run`::
|
|
(Optional, Boolean) If `true`, then the request simulates the update and
|
|
returns a response with `dry_run` field set to `true`.
|
|
|
|
[[update-desired-nodes-desc]]
|
|
==== {api-description-title}
|
|
|
|
This API creates or update the desired nodes. External orchestrators can use
|
|
this API to let Elasticsearch know about the cluster topology, including future
|
|
changes such as adding or removing nodes. Using this information, the system is
|
|
able to take better decisions.
|
|
|
|
It's possible to run the update in "dry run" mode by adding the
|
|
`?dry_run` query parameter. This will validate the request result, but will not actually perform the update.
|
|
|
|
[[update-desired-nodes-examples]]
|
|
==== {api-examples-title}
|
|
|
|
In this example, a new version for the desired nodes with history `Ywkh3INLQcuPT49f6kcppA` is created.
|
|
This API only accepts monotonically increasing versions.
|
|
|
|
[source,console]
|
|
--------------------------------------------------
|
|
PUT /_internal/desired_nodes/Ywkh3INLQcuPT49f6kcppA/100
|
|
{
|
|
"nodes" : [
|
|
{
|
|
"settings" : {
|
|
"node.name" : "instance-000187",
|
|
"node.external_id": "instance-000187",
|
|
"node.roles" : ["data_hot", "master"],
|
|
"node.attr.data" : "hot",
|
|
"node.attr.logical_availability_zone" : "zone-0"
|
|
},
|
|
"processors" : 8.0,
|
|
"memory" : "58gb",
|
|
"storage" : "2tb"
|
|
}
|
|
]
|
|
}
|
|
--------------------------------------------------
|
|
// TEST
|
|
|
|
The API returns the following result:
|
|
|
|
[source,console-result]
|
|
--------------------------------------------------
|
|
{
|
|
"replaced_existing_history_id": false,
|
|
"dry_run": false
|
|
}
|
|
--------------------------------------------------
|
|
|
|
Additionally, it is possible to specify a processors range.
|
|
This is helpful in environments where Elasticsearch nodes can
|
|
be deployed in hosts where the number of processors that the
|
|
Elasticsearch process can use is guaranteed to be at least the
|
|
lower range and up to the upper range. This is a common scenario
|
|
in Linux deployments where cgroups is used.
|
|
[source,console]
|
|
--------------------------------------------------
|
|
PUT /_internal/desired_nodes/Ywkh3INLQcuPT49f6kcppA/101
|
|
{
|
|
"nodes" : [
|
|
{
|
|
"settings" : {
|
|
"node.name" : "instance-000187",
|
|
"node.external_id": "instance-000187",
|
|
"node.roles" : ["data_hot", "master"],
|
|
"node.attr.data" : "hot",
|
|
"node.attr.logical_availability_zone" : "zone-0"
|
|
},
|
|
"processors_range" : {"min": 8.0, "max": 10.0},
|
|
"memory" : "58gb",
|
|
"storage" : "2tb"
|
|
}
|
|
]
|
|
}
|
|
--------------------------------------------------
|
|
|
|
//////////////////////////
|
|
|
|
[source,console]
|
|
--------------------------------------------------
|
|
DELETE /_internal/desired_nodes
|
|
--------------------------------------------------
|
|
// TEST[continued]
|
|
|
|
//////////////////////////
|