环境准备
五台机器:
操作系统 |
IP |
Ubuntu 16.04.3 LTS x86_64 |
192.168.1.185 |
Ubuntu 16.10 x86_64 |
192.168.3.152 |
Ubuntu 12.04.2 LTS x86_64 |
192.168.1.235 |
Windows 10专业版 |
192.168.3.187 |
Ubuntu 16.04.2 LTS x86_64 |
192.168.3.150 |
Consul官网(https://www.consul.io/downloads.html)下载相应系统的consul可执行文件并放系统PATH环境变量目录内
集群启动
192.168.1.185启动consul
consulagent -server -bootstrap-expect 3 -data-dir /tmp/consul -node 192.168.1.185-datacenter huanan –ui
192.168.3.152启动consul
consulagent -server -bootstrap-expect 3 -data-dir /tmp/consul -node 192.168.3.152-datacenter huanan –ui
192.168.1.235启动consul
consulagent -server -bootstrap-expect 3 -data-dir /tmp/consul -node 192.168.1.235-datacenter huanan -ui
此时三台机器都会打印:
2017/09/07 14:54:26 [WARN] raft: no knownpeers, aborting election
2017/09/07 14:54:26 [ERR] agent: failed tosync remote state: No cluster leader
此时三台机器还未join,不能算是一个集群,三台机器上的consul均不能正常工作,因为leader未选出
三台机器组成consul集群
192.168.3.152加入192.168.1.185
chenchong@ubuntu-rebuild:$ consul join 192.168.1.185
Successfully joined cluster by contacting 1nodes.
192.168.1.235加入192.168.1.185
chenchong@user-SMBIOS: $ consul join 192.168.1.185
Successfully joined cluster by contacting 1nodes.
很快三台机器都会打印:
consul: New leader elected: 192.168.1.235
证明此时leader已经选出,集群可以正常工作
集群状态查看
chenchong@ubuntu-rebuild:$ consul operator raft list-peers
Node ID Address State Voter RaftProtocol
192.168.1.235 192.168.1.235:8300 192.168.1.235:8300 leader true 2
192.168.1.185 192.168.1.185:8300 192.168.1.185:8300 follower true 2
192.168.3.152 192.168.3.152:8300 192.168.3.152:8300 follower true 2
user@ubuntu:~$ consul operator raft list-peers
Node ID Address State Voter RaftProtocol
192.168.1.235 192.168.1.235:8300 192.168.1.235:8300 leader true 2
192.168.1.185 192.168.1.185:8300 192.168.1.185:8300 follower true 2
192.168.3.152 192.168.3.152:83