安装docker,获取镜像
安装地址:https://www.consul.io/docs/install/index.html
获取镜像:docker pull consul
2 搭建数据中心(dc1)
2.1 节点1
docker run -d -p 8500:8500 --name node1 consul agent -server -bootstrap-expect 3 -data-dir=/tmp/consul -client="0.0.0.0" -ui
JOIN_IP="$(docker inspect -f '{{.NetworkSettings.IPAddress}}' node1)"
2.2 节点2
docker run -d --name node2 consul agent -server -join 172.17.0.2
如果 JOIN_IP 绑定成功,则可以使用以下命令创建:
docker run -d --name node2 consul agent -server -join $JOIN_IP
2.3 节点3
docker run -d --name node3 consul agent -server -join 172.17.0.2
2.4 节点4
docker run -d --name node4 consul agent -server -join 172.17.0.2
接下来查看一下数据中心 dc1 的节点
docker exec node1 consul members
3 搭建数据中心(dc2)
3.1 节点5
docker run -d --name node5 consul agent -server -bootstrap-expect 2 -datacenter=dc2
使用以下命令查看 node5 的 IP 地址:
docker inspect -f '{{.NetworkSettings.IPAddress}}' node5
3.2 节点6
docker run -d --name node6 consul agent -server -datacenter=dc2 -join 172.17.0.6
注意一定要加上 -datacenter=dc2,不然不能加入数据中心2
3.3 节点7
docker run -d --name node7 consul agent -server -datacenter=dc2 -join 172.17.0.6
3.4 节点8
这里我们添加一个客户端节点,注意没有 -server 参数。一个数据中心 Consul 一般建议 3~5 个 Server 节点,而客户端节点并没有限制,你可以添加数万个节点都没有问题。
docker run -d --name node8 consul agent -datacenter=dc2 -join 172.17.0.6
接下来我们查看一下数据中心 dc2 的节点:
docker exec node5 consul members
4 关联数据中心
这里我们选择数据中心2的节点 node5 关联到数据中心1中 IP 地址为 172.17.0.2 的 node1 节点,你也可以选择其他节点进行关联,只要这两个节点分别位于两个数据中心即可。
docker exec node5 consul join -wan 172.17.0.2
5 在 WEB 界面查看
在浏览器中访问 http://127.0.0.1:8500 地址,即可看到所有的服务和节点,还可以通过切换数据中心查看其下的服务和节点,点击每个节点可以进一步查看具体节点的健康状况、运行的服务以及响应时间等信息。
image.png
6 常用命令
6.1 列出数据中心
docker exec node5 consul catalog datacenters
6.2 列出节点
docker exec node5 consul catalog nodes
可以将 node5 换成其他节点名称,该命令会列出指定节点所在数据中心的所有节点。
6.3 移除节点
docker exec node8 consul operator raft remove-peer -id=172.17.0.9:8301
6.4 查询群集中所有的 LAN 和 WAN 的 Server 节点
docker exec node5 consul members -wan
其中 `node5“ 可以换成关联数据中心中的其他任意节点名称
6.5 查看集群状态
docker exec node5 consul operator raft list-peers
可以添加 `-stale` 参数查看旧的集群状态
网友评论