Create a Consul cluster
This section describes the creation of a Consul cluster with servers located on different hosts. Follow the instructions below to create a cluster comprised of three instances.
To begin, launch as many Consul instances as you need for the cluster (in this example, three instances).
The first instance does not require any special configuration.
Configure the other Consul instances
On each of the other instances, perform the steps below:
-
Edit the /opt/bitnami/consul/conf/consul.json file and set the following parameter:
"bootstrap_expect":0,
-
Restart the Consul service:
$ sudo /opt/bitnami/ctlscript.sh restart consul
-
Run the following command to join to the cluster. Remember to replace IP_ADDRESS_SERVER1 with the internal IP address of the first Consul instance.
$ consul join IP_ADDRESS_SERVER1
Your Consul cluster is now operational. To test it, see the steps in the following section.
Test the cluster
To view the members of the cluster, execute the following commands:
$ consul members
$ consul operator raft list-peers
You should see output similar to the below:
$ consul members
Node Address Status Type Build Protocol DC Segment
7a09a3f508af XX.XX.XX.XX:8301 alive server 1.2.0 2 dc1 <all>
ca24bba7fe91 XX.XX.XX.XX:8301 alive server 1.2.0 2 dc1 <all>
ee418517cbb5 XX.XX.XX.XX:8301 alive server 1.2.0 2 dc1 <all>
$ consul operator raft list-peers
Node ID Address State Voter RaftProtocol
ca24bba7fe91 04f8464f-ae77-af99-6d76-829928f67e82 XX.XX.XX.XX:8300 leader true 3
ee418517cbb5 484d857e-894f-4351-ee99-b6d51aa7e481 XX.XX.XX.XX:8300 follower true 3
7a09a3f508af 5a7b8c4a-d074-1051-56d4-d0e442e713c6 XX.XX.XX.XX:8300 follower true 3
To test data replication, follow these steps:
-
On the first Consul instance, create a key-value pair. The example below create a key named example/data with value test.
$ consul kv put example/data test
-
On any other Consul instance, retrieve the value of the key by executing the following:
$ consul kv get example/data
If you see the value test, this indicates that data is successfully replicating across the cluster.