1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- [[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 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: <3>
- - master-node-a
- - master-node-b
- - master-node-c
- --------------------------------------------------
- <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> The initial master nodes should be identified by their
- <<node.name,`node.name`>>, which defaults to their hostname. Make sure that
- the value in `cluster.initial_master_nodes` matches the `node.name`
- exactly. If you use a fully-qualified domain name such as
- `master-node-a.example.com` for your node names then you must use the
- fully-qualified name in this list; conversely if `node.name` is a bare
- hostname without any trailing qualifiers then you must also omit the
- trailing qualifiers in `cluster.initial_master_nodes`.
- For more information, see <<modules-discovery-bootstrap-cluster>> and
- <<modules-discovery-settings>>.
|