mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-16 18:04:52 +00:00
In #38333 and #38350 we moved away from the `discovery.zen` settings namespace since these settings have an effect even though Zen Discovery itself is being phased out. This change aligns the documentation and the names of related classes and methods with the newly-introduced naming conventions.
67 lines
3.1 KiB
Plaintext
67 lines
3.1 KiB
Plaintext
[[discovery-settings]]
|
|
=== Important discovery and cluster formation settings
|
|
++++
|
|
<titleabbrev>Discovery and cluster formation settings</titleabbrev>
|
|
++++
|
|
|
|
There are two important discovery and cluster formation settings that should be
|
|
configured before going to production so that nodes in the cluster can discover
|
|
each other and elect a master node.
|
|
|
|
[float]
|
|
[[unicast.hosts]]
|
|
==== `discovery.seed_hosts`
|
|
|
|
Out of the box, without any network configuration, Elasticsearch will bind to
|
|
the available loopback addresses and will scan local ports 9300 to 9305 to try
|
|
to connect to other nodes running on the same server. This provides an auto-
|
|
clustering experience without having to do any configuration.
|
|
|
|
When you want to form a cluster with nodes on other hosts, you must use the
|
|
`discovery.seed_hosts` setting to provide a list of other nodes in the cluster
|
|
that are master-eligible and likely to be live and contactable in order to seed
|
|
the <<modules-discovery-hosts-providers,discovery process>>. This setting
|
|
should normally contain the addresses of all the master-eligible nodes in the
|
|
cluster. This setting contains either an array of hosts or a comma-delimited
|
|
string. Each value should be in the form of `host:port` or `host` (where `port`
|
|
defaults to the setting `transport.profiles.default.port` falling back to
|
|
`transport.port` if not set). Note that IPv6 hosts must be bracketed. The
|
|
default for this setting is `127.0.0.1, [::1]`.
|
|
|
|
[float]
|
|
[[initial_master_nodes]]
|
|
==== `cluster.initial_master_nodes`
|
|
|
|
When you start a brand new Elasticsearch cluster for the very first time, there
|
|
is a <<modules-discovery-bootstrap-cluster,cluster bootstrapping>> step, which
|
|
determines the set of master-eligible nodes whose votes are counted in the very
|
|
first election. In <<dev-vs-prod-mode,development mode>>, with no discovery
|
|
settings configured, this step is automatically performed by the nodes
|
|
themselves. As this auto-bootstrapping is <<modules-discovery-quorums,inherently
|
|
unsafe>>, when you start a brand new cluster in <<dev-vs-prod-mode,production
|
|
mode>>, you must explicitly list the names or IP addresses of the
|
|
master-eligible nodes whose votes should be counted in the very first election.
|
|
This list is set using the `cluster.initial_master_nodes` setting.
|
|
|
|
[source,yaml]
|
|
--------------------------------------------------
|
|
discovery.seed_hosts:
|
|
- 192.168.1.10:9300
|
|
- 192.168.1.11 <1>
|
|
- seeds.mydomain.com <2>
|
|
cluster.initial_master_nodes:
|
|
- master-node-a <3>
|
|
- 192.168.1.12 <4>
|
|
- 192.168.1.13:9301 <5>
|
|
--------------------------------------------------
|
|
<1> The port will default to `transport.profiles.default.port` and fallback to
|
|
`transport.port` if not specified.
|
|
<2> If a hostname resolves to multiple IP addresses then the node will attempt to
|
|
discover other nodes at all resolved addresses.
|
|
<3> Initial master nodes can be identified by their <<node.name,node name>>.
|
|
<4> Initial master nodes can also be identified by their IP address.
|
|
<5> If multiple master nodes share an IP address then the port must be used to
|
|
disambiguate them.
|
|
|
|
For more information, see <<modules-discovery-settings>>.
|