目录
官方下载地址
1. 拉取 Consul 镜像
docker pull consul
2 启动consul主容器(搭建数据中心dc1)
docker run -d -p 8500:8500 --name node1 consul agent -server -bootstrap-expect 3 -data-dir=/tmp/consul -client="0.0.0.0" -ui
3. 查询dc1中主容器IP地址
docker inspect -f '{{.NetworkSettings.IPAddress}}' node1
4. 启动其他容器并加入dc1
docker run -d --name node2 --ip 10.88.0.12 consul agent -server -join 10.88.0.11
docker run -d --name node3 --ip 10.88.0.13 consul agent -server -join 10.88.0.11
docker run -d --name node4 --ip 10.88.0.14 consul agent -server -join 10.88.0.11
5. 查看数据中心dc1节点
docker exec node1 consul members
6. 启动consul主容器(搭建数据中心dc2)
docker run -d --name node5 consul agent -server -bootstrap-expect 2 -datacenter=dc2
7. 查询dc2中主容器IP地址
docker inspect -f '{{.NetworkSettings.IPAddress}}' node5
8. 启动其他容器并加入dc2
docker run -d --name node6 --ip 10.88.0.16 consul agent -server -datacenter=dc2 -join 10.88.0.15
docker run -d --name node7 --ip 10.88.0.17 consul agent -server -datacenter=dc2 -join 10.88.0.15
注意一定要加上 -datacenter=dc2,不然不能加入数据中心2
9. 添加一个客户端节点
这里我们添加一个客户端节点,注意没有 -server 参数。一个数据中心 Consul 一般建议 3~5 个 Server 节点,而客户端节点并没有限制,你可以添加数万个节点都没有问题。
docker run -d --name node8 --ip 10.88.0.18 consul agent -datacenter=dc2 -join 10.88.0.15
10. 关联数据中心
docker exec node5 consul join -wan 10.88.0.11
看到以下信息说明关联数据中心成功
11. 查看数据中心 dc2 的节点:
docker exec node5 consul members
12. 在 WEB 界面查看
在浏览器中访问 http://192.168.227.45:8501 地址,即可看到所有的服务和节点,还可以通过切换数据中心查看其下的服务和节点,点击每个节点可以进一步查看具体节点的健康状况、运行的服务以及响应时间等信息。
这里可以看到数据中心dc1和dc2
数据中心dc1实例图:
数据中心dc1节点图:
数据中心dc2实例:
数据中心dc2节点图:
13. 常用命令
13.1 列出数据中心
docker exec node1 consul catalog datacenters
这里面的node1可以换成任何一个节点
13.2 列出节点
docker exec node1 consul catalog nodes
这里面的node1可以换成任何一个节点
13.3 移除节点
docker exec node4 consul operator raft remove-peer -id=10.88.0.14:8301
13.4 查询群集中所有的 LAN 和 WAN 的 Server 节点
docker exec node1 consul members -wan
这里面的node1可以换成任何一个节点
13.5 查看集群状态
docker exec node1 consul operator raft list-peers
这里面的node1可以换成任何一个节点