使用 docker 配置 consul 集群

本贴最后更新于 1805 天前,其中的信息可能已经时移世易

centos7 使用 docker 配置 consul 集群

为实现下面的操作,需要几个前提条件

1.centos 安装了 docker,能成功跑通 hello-world
2.拥有 root 权限(sudo 也行)

配置 consul 集群

拉取最新 consul 容器

docker pull consul  

配置第一个 consul 单机

docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul agent -server -bootstrap-expect 2 -ui -bind=0.0.0.0 -client=0.0.0.0  

8500 http 端口,用于 http 接口和 web ui
8300 server rpc 端口,同一数据中心 consul server 之间通过该端口通信
8301 serf lan 端口,同一数据中心 consul client 通过该端口通信
8302 serf wan 端口,不同数据中心 consul server 通过该端口通信
8600 dns 端口,用于服务发现
-bbostrap-expect 2: 集群至少两台服务器,才能选举集群 leader
-ui:运行 web 控制台
-bind: 监听网口,0.0.0.0 表示所有网口,如果不指定默认未 127.0.0.1,则无法和容器通信
-client : 限制某些网口可以访问

获取 consul server1 的 ip 地址

docker inspect --format '{{ .NetworkSettings.IPAddress }}' consul1  

输出为 172.17.0.2

启动第二个 consul 服务:consul2, 并加入 consul1(使用 join 命令)

docker run --name consul2 -d -p 8501:8500 consul agent -server -ui -bind=0.0.0.0 -client=0.0.0.0 -join 172.17.0.2  

启动第三个 consul 服务:consul3,并加入 consul1

docker run --name consul3 -d -p 8502:8500 consul agent -server -ui -bind=0.0.0.0 -client=0.0.0.0 -join 172.17.0.2  

至此,consul 集群已完成部署,可以浏览器访问: http://ip:8500/8501/8502 查看集群状态

image.png

docker 关闭 consul 集群方式

docker ps    #查看docker正在运行的容器  
docke ps -a #查看docker我们构建生成的容器  

image.png

docker kill consul1   
docker kill consul2   
docker kill consul3  

运行上面脚本即可关闭 consul 集群
重新启动也很简单

docker start consul1   
docker start consul2   
docker start consul3  

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...