diff --git a/docs/reference/modules/discovery/discovery-settings.asciidoc b/docs/reference/modules/discovery/discovery-settings.asciidoc index 87c40a7b37b3..7515e7180b5a 100644 --- a/docs/reference/modules/discovery/discovery-settings.asciidoc +++ b/docs/reference/modules/discovery/discovery-settings.asciidoc @@ -4,19 +4,32 @@ Discovery and cluster formation are affected by the following settings: `discovery.seed_hosts`:: ++ +-- +Provides a list of the addresses of the master-eligible nodes in the cluster. +May also be a single string containing the addresses separated by commas. Each +address has the format `host:port` or `host`. The `host` is either a host name +to be resolved by DNS, an IPv4 address, or an IPv6 address. IPv6 addresses +must be enclosed in square brackets. If a host name resolves via DNS to multiple +addresses, {es} uses all of them. DNS lookups are subject to +<>. If the `port` is not given then it +is determined by checking the following settings in order: - Provides a list of master-eligible nodes in the cluster. Each value has the - format `host:port` or `host`, where `port` defaults to the setting - `transport.profiles.default.port`. Note that IPv6 hosts must be bracketed. - The default value is `["127.0.0.1", "[::1]"]`. See <>. +. `transport.profiles.default.port` +. `transport.port` + +If neither of these is set then the default port is `9300`. The default value +for `discovery.seed_hosts` is `["127.0.0.1", "[::1]"]`. See <>. +-- `discovery.seed_providers`:: Specifies which types of <> to use to obtain the addresses of the seed nodes used to start the discovery process. By default, it is the - <>. - + <> which + obtains the seed node addresses from the `discovery.seed_hosts` setting. + `discovery.type`:: Specifies whether {es} should form a multiple-node cluster. By default, {es} diff --git a/docs/reference/setup/add-nodes.asciidoc b/docs/reference/setup/add-nodes.asciidoc index eab4e131ad41..6e57bd945d3f 100644 --- a/docs/reference/setup/add-nodes.asciidoc +++ b/docs/reference/setup/add-nodes.asciidoc @@ -25,13 +25,19 @@ green. image::setup/images/elas_0204.png["A cluster with three nodes"] -To add a node to a cluster: +You can run multiple nodes on your local machine in order to experiment with how +an {es} cluster of multiple nodes behaves. To add a node to a cluster running on +your local machine: . Set up a new {es} instance. -. Specify the name of the cluster in its `cluster.name` attribute. For example, -to add a node to the `logging-prod` cluster, set `cluster.name: "logging-prod"` -in `elasticsearch.yml`. +. Specify the name of the cluster with the `cluster.name` setting in +`elasticsearch.yml`. For example, to add a node to the `logging-prod` cluster, +add the line `cluster.name: "logging-prod"` to `elasticsearch.yml`. . Start {es}. The node automatically discovers and joins the specified cluster. +To add a node to a cluster running on multiple machines, you must also +<> so that the new node can discover +the rest of its cluster. + For more information about discovery and shard allocation, see <> and <>. diff --git a/docs/reference/setup/important-settings/discovery-settings.asciidoc b/docs/reference/setup/important-settings/discovery-settings.asciidoc index d0f82619f897..de6ad8ab1716 100644 --- a/docs/reference/setup/important-settings/discovery-settings.asciidoc +++ b/docs/reference/setup/important-settings/discovery-settings.asciidoc @@ -14,19 +14,20 @@ each other and elect a master node. 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. +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 +When you want to form a cluster with nodes on other hosts, you should 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 <>. 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]`. +should be a list 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. + +If your master-eligible nodes do not have fixed names or addresses, use an +<> to find their addresses +dynamically. [float] [[initial_master_nodes]] @@ -50,16 +51,18 @@ discovery.seed_hosts: - 192.168.1.10:9300 - 192.168.1.11 <1> - seeds.mydomain.com <2> -cluster.initial_master_nodes: <3> + - [0:0:0:0:0:ffff:c0a8:10c]:9301 <3> +cluster.initial_master_nodes: <4> - 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. +<1> The port is optional and usually defaults to `9300`, but this default can + be <> by certain settings. <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 +<3> IPv6 addresses must be enclosed in square brackets. +<4> The initial master nodes should be identified by their <>, 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