Go语言微服务架构实战:第十四节 微服务管理--Docker搭建Consul集群

微服务管理--Docker搭建Consul集群

一台主机上搭建Consul集群并测试

借助Docker容器,已经启动了一个server节点,并能够与之通信。 接下来,希望借助Docker来搭建consul集群。以启动3个consul集群节点为例:

1、启动第一个节点

启动第一个节点的时候没有使用了 -bootstrap 参数, 而是使用了 -bootstrap-expect 3, 使用这个参数节点会等到所有三个端都连接到一起了才会启动并且成为一个可用的cluster。

$ docker run -d --name node1 -h node1 consul agent -server -bootstrap-expect 3

2、查看节点IP

我们需要知道这个container的内部IP, 使用下面的命令我们吧这个IP放到了环境变量 JOIN_IP 里。

$ JOIN_IP="$(docker inspect -f '{{ .NetworkSettings.IPAddress }}' node1)"

3、启动第二个节点

启动 node2并且告诉他通过 $JOIN_IP 加入到 node1:

$ docker run -d --name node2 -h node2 consul agent -server -join $JOIN_IP

4、启动第三个节点

同样的方法我们启动 node3:

$ docker run -d --name node3 -h node3 consul agent -server -join $JOIN_IP

现在我们就有了一个拥有3个节点的运行在一台机器上的集群。注意,根据Consul Agent的名字给container起了名字。

我们没有暴露出任何一个端口用以访问这个集群, 但是我们可以使用第四个agent节点以client的模式(不是用 -server参数)。这意味着他不参与选举但是可以和集群交互。而且这个client模式的agent也不需要磁盘做持久化。

$ docker run -d -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node4 progrium/consul -join $JOIN_IP

现在我们可以就可以通过这几个暴露的端口和集群交互了, 也可以试着杀死、添加或者重启集群中的几个节点看看集群是如何管理这些节点的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值