|
@@ -1,29 +1,28 @@
|
|
|
[[discovery-settings]]
|
|
|
-=== Important discovery and cluster formation settings
|
|
|
-++++
|
|
|
-<titleabbrev>Discovery and cluster formation settings</titleabbrev>
|
|
|
-++++
|
|
|
+[discrete]
|
|
|
+=== Discovery and cluster formation settings
|
|
|
|
|
|
-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.
|
|
|
+Configure two important discovery and cluster formation settings before going
|
|
|
+to production so that nodes in the cluster can discover each other and elect a
|
|
|
+master node.
|
|
|
|
|
|
[discrete]
|
|
|
[[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
|
|
|
+Out of the box, without any network configuration, {es} will bind to
|
|
|
+the available loopback addresses and scan local ports `9300` to `9305` to
|
|
|
+connect with other nodes running on the same server. This behavior provides an
|
|
|
auto-clustering experience without having to do any configuration.
|
|
|
|
|
|
-When you want to form a cluster with nodes on other hosts, you should use the
|
|
|
-<<static-cluster-setting, static>> `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 value
|
|
|
-should be a YAML sequence or array of the addresses of all the master-eligible
|
|
|
+When you want to form a cluster with nodes on other hosts, use the
|
|
|
+<<static-cluster-setting, static>> `discovery.seed_hosts` setting. This setting
|
|
|
+provides a list of other nodes in the cluster
|
|
|
+that are master-eligible and likely to be live and contactable to seed
|
|
|
+the <<modules-discovery-hosts-providers,discovery process>>. This setting
|
|
|
+accepts a YAML sequence or array of the addresses of all the master-eligible
|
|
|
nodes in the cluster. Each address can be either an IP address or a hostname
|
|
|
-which resolves to one or more IP addresses via DNS.
|
|
|
+that resolves to one or more IP addresses via DNS.
|
|
|
|
|
|
[source,yaml]
|
|
|
----
|
|
@@ -33,9 +32,9 @@ discovery.seed_hosts:
|
|
|
- seeds.mydomain.com <2>
|
|
|
- [0:0:0:0:0:ffff:c0a8:10c]:9301 <3>
|
|
|
----
|
|
|
-<1> The port is optional and usually defaults to `9300`, but this default can
|
|
|
- be <<built-in-hosts-providers,overridden>> by certain settings.
|
|
|
-<2> If a hostname resolves to multiple IP addresses then the node will attempt to
|
|
|
+<1> The port is optional and defaults to `9300`, but can
|
|
|
+ be <<built-in-hosts-providers,overridden>>.
|
|
|
+<2> If a hostname resolves to multiple IP addresses, the node will attempt to
|
|
|
discover other nodes at all resolved addresses.
|
|
|
<3> IPv6 addresses must be enclosed in square brackets.
|
|
|
|
|
@@ -47,20 +46,22 @@ dynamically.
|
|
|
[[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
|
|
|
+When you start an {es} cluster for the first time, a
|
|
|
+<<modules-discovery-bootstrap-cluster,cluster bootstrapping>> step
|
|
|
+determines the set of master-eligible nodes whose votes are counted in the
|
|
|
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.
|
|
|
+settings configured, this step is performed automatically by the nodes
|
|
|
+themselves.
|
|
|
+
|
|
|
+Because auto-bootstrapping is <<modules-discovery-quorums,inherently
|
|
|
+unsafe>>, when starting a new cluster in production
|
|
|
+mode, you must explicitly list the master-eligible nodes whose votes should be
|
|
|
+counted in the very first election. You set this list using the
|
|
|
+`cluster.initial_master_nodes` setting.
|
|
|
|
|
|
-NOTE: You should remove `cluster.initial_master_nodes` setting from the nodes' configuration
|
|
|
-*once the cluster has successfully formed for the first time*. Do not use this setting when
|
|
|
-restarting a cluster or adding a new node to an existing cluster.
|
|
|
+IMPORTANT: After the cluster forms successfully for the first time, remove the `cluster.initial_master_nodes` setting from each nodes'
|
|
|
+configuration. Do not use this setting when
|
|
|
+restarting a cluster or adding a new node to an existing cluster.
|
|
|
|
|
|
[source,yaml]
|
|
|
--------------------------------------------------
|
|
@@ -74,14 +75,13 @@ cluster.initial_master_nodes: <1>
|
|
|
- master-node-b
|
|
|
- master-node-c
|
|
|
--------------------------------------------------
|
|
|
-<1> 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`.
|
|
|
+<1> Identify the initial master nodes by their <<node-name,`node.name`>>, which
|
|
|
+defaults to their hostname. Ensure that the value in
|
|
|
+`cluster.initial_master_nodes` matches the `node.name` exactly. If you use a
|
|
|
+fully-qualified domain name (FQDN) such as `master-node-a.example.com` for your
|
|
|
+node names, then you must use the FQDN in this list. Conversely, if `node.name`
|
|
|
+is a bare hostname without any trailing qualifiers, you must also omit the
|
|
|
+trailing qualifiers in `cluster.initial_master_nodes`.
|
|
|
|
|
|
-For more information, see <<modules-discovery-bootstrap-cluster>> and
|
|
|
-<<modules-discovery-settings>>.
|
|
|
+See <<modules-discovery-bootstrap-cluster,bootstrapping a cluster>> and
|
|
|
+<<modules-discovery-settings,discovery and cluster formation settings>>.
|