Docker consul容器服务更新与发现理论与实验

Docker consul容器服务更新与发现理论与实验

1.定义

consul是HashiCorp公司推出使用go语言编写的开源工具,用于实现分布式系统的服务发现与配置

具有如下特性:

consul支持健康检查,允许存储键值对

一致性协议采用Raft算法,用来保证服务的高可用

成员管理和消息广播采用GOSSIP协议,支持ACL访问控制

方便部署,与Docker等轻量级容器可无缝配合

2.架构

每个提供服务的节点上都要部署和运行consul的agent

consul agent有两种运行模式:server和client

server和client只是consul集群层面的区分,与搭建在cluster之上的应用服务无关

3.实验

consul服务器20.0.0.10

[root@localhost ~]# mkdir consul
[root@localhost ~]# cd consul
[root@localhost consul]# rz -E
rz waiting to receive.
[root@localhost consul]# ls
consul_0.9.2_linux_amd64.zip
[root@localhost consul]# unzip consul_0.9.2_linux_amd64.zip 
Archive:  consul_0.9.2_linux_amd64.zip
  inflating: consul                  
[root@localhost consul]# ls
consul  consul_0.9.2_linux_amd64.zip
[root@localhost consul]# mv consul /usr/bin
[root@localhost consul]# consul agent \

> -server \
> -bootstrap \
> -ui \
> -data-dir=/var/lib/consul-data \
> -bind=20.0.0.10 \
> -client=0.0.0.0 \
> -node=consul-server1 &> /var/log/consul.log &
>  [1] 63840
[root@localhost consul]# jobs
 [1]+  运行中               consul agent -server -bootstrap -ui -data-dir=/var/lib/consul-data -bind=20.0.0.10 -client=0.0.0.0 -node=consul-server1 &>/var/log/consul.log &
[root@localhost consul]# consul members
 Node            Address         Status  Type    Build  Protocol  DC
 consul-server1  20.0.0.10:8301  alive   server  0.9.2  2         dc1
[root@localhost consul]# consul info | grep leader
leader = true
leader_addr = 20.0.0.10:8300

20.0.0.11虚拟机

[root@localhost ~]# docker run -d \

> --name=registrator \
> --net=host \
> -v /var/run/docker.sock:/tmp/docker.sock \
> --restart=always \
> gliderlabs/registrator:latest \
> -ip=20.0.0.11 \
> consul://20.0.0.10:8500
[root@localhost ~]# docker run -itd -p:83:80 --name test-1 -h test01 nginx
[root@localhost ~]# docker run -itd -p:84:80 --name test-2 -h test02 nginx
 575c49d7f65997df090039d6654eeae2a92d4da5f74dc0442220b16471dfaf03
[root@localhost ~]# docker run -itd -p:88:80 --name test-3 -h test03 httpd
[root@localhost ~]# docker run -itd -p:89:80 --name test-4 -h test04 httpd
 9b2cb789ded3a758ed06db2610070488db2f7b8f358a4ef57c91e49925245811

在真机登录浏览器20.0.0.10:8500就可以看见如图

Docker consul容器服务更新与发现理论与实验_第1张图片

Docker consul容器服务更新与发现理论与实验_第2张图片

可以清晰的看见节点中的容器数量等情况。这就是consul服务

你可能感兴趣的:(Docker consul容器服务更新与发现理论与实验)