基于docker安装consul集群搭建server+client

1、Docker 下载 consul

docker pull consul

2、运行consul,部署server,官方建议是3-5台部署在不同的服务器上,我用虚拟机模拟安装在同一台服务器上

-- 创建并启动第一个节点
docker run -d -p 8500:8500 --name=ConsulServer-A consul agent -server -ui -node=Server-A -bootstrap-expect=3 -client=0.0.0.0

--查看第一个节点IP
docker inspect -f '{{.NetworkSettings.IPAddress}}' ConsulServer-A

--创建并启动第二个节点
docker run -d -p 8501:8500 --name=ConsulServer-B consul agent -server -ui -node=Server-B -bootstrap-expect=3 -client=0.0.0.0 -join=172.17.0.2

--创建并启动第三个节点
docker run -d -p 8502:8500 --name=ConsulServer-c consul agent -server -ui -node=Server-c -bootstrap-expect=3 -client=0.0.0.0 -join=172.17.0.2

--第二种方式:创建变量存放IP
JOIN_IP="$(docker inspect -f '{{.NetworkSettings.IPAddress}}' ConsulServer-A)"
--创建并启动第二个节点,第三个节点 docker run -d -p 8502:8500 --name=ConsulServer-c consul agent -server -ui -node=Server-c -bootstrap-expect=3 -client=0.0.0.0 -join=$JOIN_IP

--创建第四个节点(client模式)
docker run -d -p 8502:8500 --name=ConsulClient-a consul agent -ui -node=ConsulClient-a -client=0.0.0.0 -join=172.17.0.2
去掉 -server 即为client模式

启动配置参数说明:

-bootstrap-expect
配置数据中心中预期的SERVER的数量,当集群中启动的SERVER达到预期值时,Consul开始引导集群;

-bind
内部集群通信绑定的地址,默认情况下是"0.0.0.0"-client
consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0-config-file
服务启动时要加载的配置文件;

-config-dir
配置文件目录;

-config-format
指定要加载的配置文件的格式;

-data-dir
数据目录;

-dev
启用开发服务器模式。对于在关闭所有持久性选项的情况下快速启动consul代理非常有用,不适合生产使用,因为它不将任何数据写入磁盘;

-join
启动时要加入到的另一位代理地址;

-retry-join
加入失败后重试连接,对于明确可用地址的情况下很有用;

3、访问:http://localhost:8500/ui/dc1/nodes

 

 

4、查看集群信息

--查看集群成员
docker exec -t ConsulServer-A consul members

--查看选举状态
docker exec -t ConsulServer-A consul operator raft list-peers

 

posted @ 2021-02-08 15:34  夜空中的萤火虫  阅读(590)  评论(0编辑  收藏  举报