CentOS7 搭建 Consul 集群

环境准备:

ssh shell工具: 远程连接
三个CentOS示例: 部署集群

配置好各个实例之间的网络访问,以及ssh免密登录。

下载&上传:

1、下载 Consul:
Download Consul - Consul by HashiCorp

2、上传至虚拟机:

1
2
3
➜  Desktop scp consul_1.1.0_linux_amd64.zip root@192.168.1.11:/opt
➜ Desktop scp consul_1.1.0_linux_amd64.zip root@192.168.1.12:/opt
➜ Desktop scp consul_1.1.0_linux_amd64.zip root@192.168.1.13:/opt

解压&拷贝

在其他几台机器上重复此命步骤:

1
2
3
4
5
6
7
8
9
10
11
12
[root@centos-1 ~]# yum install unzip  -y  
[root@centos-1 ~]# cd /opt
[root@centos-1 opt]# ls
consul_1.1.0_linux_amd64.zip
[root@centos-1 opt]# unzip consul_1.1.0_linux_amd64.zip
Archive: consul_1.1.0_linux_amd64.zip
inflating: consul
[root@centos-1 opt]# ls
consul consul_1.1.0_linux_amd64.zip
[root@centos-1 opt]# mv consul /usr/bin/
[root@centos-1 bin]# cd /usr/bin/ && ls consul
consul

启动

1
2
[root@centos-1 ~]# consul agent -server  -data-dir=/tmp/consul -node=server-1 \
-bind=192.168.1.11 -bootstrap-expect 3 -client=0.0.0.0 -ui &
1
2
[root@centos-2 ~]#  consul agent -server  -data-dir=/tmp/consul -node=server-2 \
-bind=192.168.1.12 -join=192.168.1.11 -client=0.0.0.0 -ui &
1
2
[root@centos-3 ~]#  consul agent -server  -data-dir=/tmp/consul -node=server-3 \
-bind=192.168.1.13 -join=192.168.1.11 -client=0.0.0.0 -ui &

选项详解:

选项 说明
consul anent: 该命令会启动一个consulAnent
-server 表示该 agent是一个 serverAgent,不添加这个选项则表示是一个 clientAgent
-data-dir 表示相关数据存储的目录位置,在 serverAgent上该命令所指示的目录下会存储一些集群的状态信息
-node 指定该 agent 节点的名称,该名称在集群众必须是唯一的
-bind 指定 agent 的 Ip
-bootstrap-expect 该命令通知 consul 准备加入集群的节点个数
-client 0.0.0.0 -ui 启动 consulUI,如不添加该指令,则 UI 只能在当前机器上访问
-dc 指定该 agent 加入到哪一个数据中心,默认为 dc1
join 将该节点加入集群中

验证

验证集群是否搭建成功,执行consul members,在任意的一台机器上:

1
2
3
4
5
[root@centos-1 ~]# consul members
Node Address Status Type Build Protocol DC Segment
server-1 192.168.1.11:8301 alive server 1.1.0 2 dc1 <all>
server-2 192.168.1.12:8301 alive server 1.1.0 2 dc1 <all>
server-3 192.168.1.13:8301 alive server 1.1.0 2 dc1 <all>