美文网首页
基于 Docker 搭建 Consul 多数据中心集群

基于 Docker 搭建 Consul 多数据中心集群

作者: 零一间 | 来源:发表于2019-08-06 18:38 被阅读0次

安装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` 参数查看旧的集群状态

文章参考:基于 Docker 搭建 Consul 多数据中心集群

相关文章

网友评论

      本文标题:基于 Docker 搭建 Consul 多数据中心集群

      本文链接:https://www.haomeiwen.com/subject/weowdctx.html