下载安装包
> wget https://releases.hashicorp.com/consul/1.6.3/consul_1.6.3_linux_amd64.zip
解压
> unzip consul_1.6.3_linux_amd64.zip
拷贝到目录
解压后,只有一个consul
可执行的文件,将其拷贝到想要安装的目录中:
> mv consul /opt/
简单的测试一下consul
完成consul
的安装后,必须运行agent
。
agent
可以运行为server
或client
模式。
每个数据中心至少必须拥有一台
server
,建议在一个集群中有3
或者5
个server
。部署单一的server
,在出现失败时会不可避免的造成数据丢失。
可以通过-dev
命令快速启动consul server
而不需要额外的配置:
> consul agent -dev
然后另开一个终端,查看consul
实例:
> consul members
Node Address Status Type Build Protocol DC Segment
localhost.localdomain 127.0.0.1:8301 alive server 1.6.3 2 dc1 <all>
可以看出,在默认创建的数据中心dc1
中,启动了一个consul server
。
通过docker搭建consul集群
1、首先安装docker
。
2、下载consul
镜像
> docker pull consul
3、先创建并运行第一个consul
容器
> docker run -d --name=consul1 -p 8900:8500 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --bootstrap-expect=3 --client=0.0.0.0 -ui -node=1
可以通过下面命令查看现在运行的consul
容器:
> docker exec consul1 consul members
Node Address Status Type Build Protocol DC Segment
1 172.17.0.2:8301 alive server 1.6.3 2 dc1 <all>
这里,我们已经启动了一个consul
,数据中心名为dc1
,这个node
名为1
,分配的ip
为172.17.0.2
。
4、再创建并运行两个consul
容器,加入集群中:
> docker run -d --name=consul2 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --client=0.0.0.0 -node=2 --join=172.17.0.2
> docker run -d --name=consul3 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --client=0.0.0.0 -node=3 --join=172.17.0.2
再次查看集群中consul
节点的信息:
> docker exec consul1 consul members
Node Address Status Type Build Protocol DC Segment
1 172.17.0.2:8301 alive server 1.6.3 2 dc1 <all>
2 172.17.0.3:8301 alive server 1.6.3 2 dc1 <all>
3 172.17.0.4:8301 alive server 1.6.3 2 dc1 <all>
启动、停止、重启、查看已经存在的容器的命令:
docker start container # 启动容器
docker stop container # 停止容器
docker restart container # 重启容器
docker ps -a # 查看所有容器信息