mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 04:58:50 +00:00
2049f715b3
A voting-only master-eligible node is a node that can participate in master elections but will not act as a master in the cluster. In particular, a voting-only node can help elect another master-eligible node as master, and can serve as a tiebreaker in elections. High availability (HA) clusters require at least three master-eligible nodes, so that if one of the three nodes is down, then the remaining two can still elect a master amongst them-selves. This only requires one of the two remaining nodes to have the capability to act as master, but both need to have voting powers. This means that one of the three master-eligible nodes can be made as voting-only. If this voting-only node is a dedicated master, a less powerful machine or a smaller heap-size can be chosen for this node. Alternatively, a voting-only non-dedicated master node can play the role of the third master-eligible node, which allows running an HA cluster with only two dedicated master nodes. Closes #14340 Co-authored-by: David Turner <david.turner@elastic.co>
115 lines
4.1 KiB
Plaintext
115 lines
4.1 KiB
Plaintext
[[cluster]]
|
|
= Cluster APIs
|
|
|
|
[partintro]
|
|
--
|
|
["float",id="cluster-nodes"]
|
|
== Node specification
|
|
|
|
Some cluster-level APIs may operate on a subset of the nodes which can be
|
|
specified with _node filters_. For example, the <<tasks,Task Management>>,
|
|
<<cluster-nodes-stats,Nodes Stats>>, and <<cluster-nodes-info,Nodes Info>> APIs
|
|
can all report results from a filtered set of nodes rather than from all nodes.
|
|
|
|
_Node filters_ are written as a comma-separated list of individual filters,
|
|
each of which adds or removes nodes from the chosen subset. Each filter can be
|
|
one of the following:
|
|
|
|
* `_all`, to add all nodes to the subset.
|
|
* `_local`, to add the local node to the subset.
|
|
* `_master`, to add the currently-elected master node to the subset.
|
|
* a node id or name, to add this node to the subset.
|
|
* an IP address or hostname, to add all matching nodes to the subset.
|
|
* a pattern, using `*` wildcards, which adds all nodes to the subset
|
|
whose name, address or hostname matches the pattern.
|
|
* `master:true`, `data:true`, `ingest:true`, `voting_only:true` or
|
|
`coordinating_only:true`, which respectively add to the subset all
|
|
master-eligible nodes, all data nodes, all ingest nodes, all voting-only
|
|
nodes, and all coordinating-only nodes.
|
|
* `master:false`, `data:false`, `ingest:false`, `voting_only:true`, or
|
|
`coordinating_only:false`, which respectively remove from the subset all
|
|
master-eligible nodes, all data nodes, all ingest nodes, all voting-only
|
|
nodes and all coordinating-only nodes.
|
|
* a pair of patterns, using `*` wildcards, of the form `attrname:attrvalue`,
|
|
which adds to the subset all nodes with a custom node attribute whose name
|
|
and value match the respective patterns. Custom node attributes are
|
|
configured by setting properties in the configuration file of the form
|
|
`node.attr.attrname: attrvalue`.
|
|
|
|
NOTE: node filters run in the order in which they are given, which is important
|
|
if using filters that remove nodes from the set. For example
|
|
`_all,master:false` means all the nodes except the master-eligible ones, but
|
|
`master:false,_all` means the same as `_all` because the `_all` filter runs
|
|
after the `master:false` filter.
|
|
|
|
NOTE: if no filters are given, the default is to select all nodes. However, if
|
|
any filters are given then they run starting with an empty chosen subset. This
|
|
means that filters such as `master:false` which remove nodes from the chosen
|
|
subset are only useful if they come after some other filters. When used on its
|
|
own, `master:false` selects no nodes.
|
|
|
|
NOTE: The `voting_only` role requires the {default-dist} of Elasticsearch and
|
|
is not supported in the {oss-dist}.
|
|
|
|
Here are some examples of the use of node filters with the
|
|
<<cluster-nodes-info,Nodes Info>> APIs.
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
# If no filters are given, the default is to select all nodes
|
|
GET /_nodes
|
|
# Explicitly select all nodes
|
|
GET /_nodes/_all
|
|
# Select just the local node
|
|
GET /_nodes/_local
|
|
# Select the elected master node
|
|
GET /_nodes/_master
|
|
# Select nodes by name, which can include wildcards
|
|
GET /_nodes/node_name_goes_here
|
|
GET /_nodes/node_name_goes_*
|
|
# Select nodes by address, which can include wildcards
|
|
GET /_nodes/10.0.0.3,10.0.0.4
|
|
GET /_nodes/10.0.0.*
|
|
# Select nodes by role
|
|
GET /_nodes/_all,master:false
|
|
GET /_nodes/data:true,ingest:true
|
|
GET /_nodes/coordinating_only:true
|
|
GET /_nodes/master:true,voting_only:false
|
|
# Select nodes by custom attribute (e.g. with something like `node.attr.rack: 2` in the configuration file)
|
|
GET /_nodes/rack:2
|
|
GET /_nodes/ra*:2
|
|
GET /_nodes/ra*:2*
|
|
--------------------------------------------------
|
|
// CONSOLE
|
|
--
|
|
|
|
include::cluster/health.asciidoc[]
|
|
|
|
include::cluster/state.asciidoc[]
|
|
|
|
include::cluster/stats.asciidoc[]
|
|
|
|
include::cluster/pending.asciidoc[]
|
|
|
|
include::cluster/reroute.asciidoc[]
|
|
|
|
include::cluster/update-settings.asciidoc[]
|
|
|
|
include::cluster/get-settings.asciidoc[]
|
|
|
|
include::cluster/nodes-stats.asciidoc[]
|
|
|
|
include::cluster/nodes-info.asciidoc[]
|
|
|
|
include::cluster/nodes-usage.asciidoc[]
|
|
|
|
include::cluster/remote-info.asciidoc[]
|
|
|
|
include::cluster/tasks.asciidoc[]
|
|
|
|
include::cluster/nodes-hot-threads.asciidoc[]
|
|
|
|
include::cluster/allocation-explain.asciidoc[]
|
|
|
|
include::cluster/voting-exclusions.asciidoc[]
|