介绍
该系列文章会出十期,总结自己学习Consul以及在项目中Consul的应用,该系列已实战为主,中间会介绍项目中使用的技术栈及技术要点,希望能够帮助到大家,中间出现的错误欢迎大家指正。
准备开发环境
- 阿里云服务器,操作系统Centos6.5
- 默认你本地环境已经部署Docker服务
- Consul镜像使用Docker服务中提供的最新版本(latest)
操作步骤
Docker pull Consul镜像
docker pull consul
Using default tag: 1.8.4
latest: Pulling from library/consul
Digest: sha256:36fd1f8ca4d702c7dce0d58662893245ff417c863ba38226e73be7f722d0efcb
Status: Image is up to date for consul:latest
docker.io/library/consul:1.8.4
先启动一个单机版Consul服务,启动一个命名为 consul_server_1
的 Docker 容器来运行 Consul ,启动的 Consul 的版本是 1.8.4
。CONSUL_BIND_INTERFACE
设置为默认桥接网络 eth0
并且主机上不显示任何服务
$ docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_1 consul:1.8.4 agent -server -bootstrap -ui -node=1 -client='0.0.0.0'
9e86237f42d3c2cefab5de0dc9888d2bd4ed3e7a1aa2ca8e1ebc54cef9ea47b7
提示:/consul/data
是 Consul 持久化地方,如果需要持久化那 Dooker 启动时候需要给它指定一个数据卷 -v /data/consul:/consul/data
;
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
Consul web管理
上面命令已经启动了 Consul 和 Web 管理器,我们现在打开 Web 管理器来看一下是否启动成功。通过浏览器浏览 Http://{serverIp}:8500
web 管理
上图显示已经启动成功了,启动了一个节点名称为
-node=1
的节点 ,并且可以通过管理器管理 Node 节点、Key/Value 功能等。