consul 集群
Posted lifejoy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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应用没有开启。
以上是关于consul 集群的主要内容,如果未能解决你的问题,请参考以下文章