consul 集群

   本文主要讲述如何搭建基于docker容器化的consul 搭建。相关consul是什么,用途,请参考consul 官网 https://www.consul.io/。  

Consul 
   docker pull docker    sudo docker run -d -p 8500:8500 -v /data/consul -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_1 consul agent -server -bootstrap -ui -node=1 -client='0.0.0.0'    Consul 命令简单介绍    agent : 表示启动 Agent 进程。   -server:表示启动 Consul Server 模式。   -client:表示启动 Consul Cilent 模式。   -bootstrap:表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志。   -ui:表示启动 Web UI 管理器,默认开放端口 8500,所以上面使用 Docker 命令把 8500 端口对外开放。   -node:节点的名称,集群中必须是唯一的。   -client:表示 Consul 将绑定客户端接口的地址,0.0.0.0 表示所有地址都可以访问。   -join:表示加入到某一个集群中去。 如:-json=192.168.1.23

     首先确保你安装了docker ,其次确保你有docker hub 登录,dokcer pull检测本地没有consul会从docker hub pull官方镜像,如果docker pull报错,一般是没有登录,docker login就能解决

     拉去镜像后,运行命令创建docker 容器。相关参数含义如上所示。

  Server 集群       

   通过命令查一下当前运行 查看Consul 集群信息
   docker exec consul_server_1 consul members

        集群加入server:上一个命令可以拿到server ip 即为 join 的

  docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_2 consul  agent -server -node=2 -join='172.17.0.3'   --node 3   docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_3 consul agent -server -node=3 -join='172.17.0.3'

Client 加入集群

  Client 模式不持久化数据。一般情况每台应用服务器都会安装一个 Client ,这样可以减轻跨服务器访问带来性能损耗。也可以减轻 Server 的请求压力。
  -- client4
  docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_4 consul agent -client -node=4 -join='172.17.0.3' -client='0.0.0.0'   --client   docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_5 consul agent -client -node=5 -join='172.17.0.3' -client='0.0.0.0'   --client   docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_6 consul agent -client -node=6 -join='172.17.0.3' -client='0.0.0.0'

这样一个docker 集群就ok,可以去可视化 ui看效果图:

 上述是server节点,所有节点点一下node,就可以看到


有个异常的service是我的webapi应用没有开启。

猜你喜欢

转载自www.cnblogs.com/lifejoy/p/10739520.html