赞
踩
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就可以看见如图
可以清晰的看见节点中的容器数量等情况。这就是consul服务
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。