架构
环境
Consul Server :192.168.200.164、192.168.200.165、192.168.200.166
Consul Client :192.168.200.167
部署流程
一、下载 Consul
创建 Consul 文件夹,下载 Consul 软件包进行解压,得到 Consul 文件。
分别在 192.168.200.164、192.168.200.165、192.168.200.166、192.168.200.167 四台服务器上执行相同操作。
mkdir consul
wget https://releases.hashicorp.com/consul/1.9.5/consul_1.9.5_linux_amd64.zip
unzip consul_1.9.5_linux_amd64.zip
二、启动 Consul Server
1. 创建文件夹
分别创建,下面文件夹,否则执行 Consul Server 启动命令,会报目录不存在。
mkdir /etc/consul.d
mkdir /usr/local/consul/data
2. 执行启动命令
192.168.200.164 server-02
./consul agent -server -ui -node=server-02 -client=0.0.0.0 -bootstrap-expect=3 -config-dir=/etc/consul.d/ -data-dir=/usr/local/consul/data/ -bind=192.168.200.164
192.168.200.165 server-01
./consul agent -server -ui -node=server-01 -client=0.0.0.0 -bootstrap-expect=3 -config-dir=/etc/consul.d/ -data-dir=/usr/local/consul/data/ -bind=192.168.200.165
192.168.200.166 server-03
./consul agent -server -ui -node=server-03 -client=0.0.0.0 -bootstrap-expect=3 -config-dir=/etc/consul.d/ -data-dir=/usr/local/consul/data/ -bind=192.168.200.166
命令行配置 -bootstrap-expect=3 :集群中有三台主机,为了防止脑裂,一般为奇数
三、启动 Consul Client
1. 执行启动命令
192.168.200.167 client-01
./consul agent -ui -node=client-01 -client=0.0.0.0 -data-dir=/usr/local/consul/data/ -bind=192.168.200.167
四、组建集群
到此步骤(四台服务会打印错误信息日志,未有集群),三台 Consul Server 和 一台 Consul Client,还未在一个集群中。
分别在四台服务器打开新的终端窗口,执行下面命令,使四台服务组成一个集群。在三台 Server 中被 join 的服务器会成为 Leader。
./consul join 192.168.200.164
五、查看集群状态
查看集群状态可以通过命令和 UI 两种方式。
命令方式
在任意一台服务执行下面命令。
consul members
UI 方式
六、集群 UI
在集群中查看任意一台服务器,所看到的内容数据都是一致的。
此时集群节点。
192.168.200.167 client-01
192.168.200.164 server-02 (此时为 Leader)
192.168.200.165 server-01
集群异常测试
全部宕机
首先启动 192.168.200.167 Client-01,此时 UI 不能打开。
再启动 192.168.200.166 Server-03,此时 UI 不都能打开,并且集群不能正常工作。
再启动 192.168.200.165 Server-01,此时 UI 都不能打开,并且集群不能正常工作。
补充
通过 client-01 注册的服务,其他信息存储在 data/services/ 目录下。