1.Consul是HashiCorp公司推出的开源工具,Consul由Go语言开发。部署部署起来非常容易,只需要极少的可执行程序和配置文件,具有绿色,轻量级的特点。
2.Consul是分布式的,高可用的,可横向扩展的用于实现分布式系统的服务发现与配置
定义标准的格式。以及管理相关前端服务的配置文件
Consul-Template是一个守护进程,用于实时查询Consul集群信息
Consul-Template可以更新文件系统上任意数量的指定模板,生产配置文件
更新完成以后,可以选择运行shell命令执行更新操作,重新加载Nginx
Consul-Template可以查询Consul中的服务目录,key,key-values等。
这种强大的抽象功能和查询模板可以使Consul-Template特别适合动态的创建配置文件。
例如:创建Apache/Nginx Proxy Balancers Haproxy Backends
一个由GO语言编写的。针对docker使用的,可以用于检测容器状态,自动注册和注销docker容器的服务到服务配置中心。目前支持Consul,Etcd和SkyDNS2
总结 :后端没构建出一个容器,会向regitrator进行注册,控制consul完成更新操作,consul会接触consul template模板进行更新,核心机制:consul:自动发现自动更新,为容器提供服务(添加,删除,生命周期)
实验背景:nginx+tomcat实现对tomcat的反向代理
问题/需求:当后端tomcat节点大批量增加,需要在保证服务不中断的情况下在nginx配置文件增加这些后端节点的地址
主机 | 操作系统 | IP地址 | 主要软件版本 |
---|---|---|---|
consul | centos7 | 192.168.50.12 | docker consul consul-template |
registrator | centos7 | 192.168.50.20 | docker registrator |
192.168.50.12
mkdir /root/consul
cd /root/consul
//放入安装包
unzip consul_0.9.2_linux_amd64.zip
mv consul /usr/bin
consul agent \
-server \ #服务端
-bootstrap \ #前端框架
-ui \ #可被访问的web界面
-data-dir=/var/lib/consul-data \ #consul数据目录
-bind=192.168.50.12 \ #本地地址
-client=0.0.0.0 \ #表示所有
-node=consul-server01 <