文章目录
一,consul概述
1.什么是consul
Consul是HashiCorp公司推出的开源工具,Consul由Go语言开发,部署起来非常容易,只需要极少的可执行程序和配置文件,具有绿色、轻量级的特点。
Consul是分布式的、高可用的、可横向扩展的用于实现分布式系统的服务发现与配置。
2.Consul的作用
- 服务注册与发现(主要功能),提供HTTP和DNS两种发现方式
- 健康检查,支持多种协议,HTTP、TCP等
- Key/Value存储
- 支持多数据中心
- 基于Golong语言,可移植性强
- 支持ACL访问控制
- 与Docker等轻量级容器可无缝配合
二,consul-template概述
Consul-Template是一个守护进程,用于实时查询Consul集群信息
Consul-Template可以更新文件系统上任意数量的指定模板,生成配置文件更新完成以后,可以选择运行shell命令执行更新操作,重新加载Nginx。
Consul-Template可以查询Consul中的服务目录、Key、Key-values等。
这种强大的抽象功能和查询语言模板可以使Consul-Template特别适合动态的创建配置文件。
例如:创建Apache/Nginx Proxy Balancers、Haproxy Backends
三,regisrator的作用
一个由Go语言编写的,针对docker使用的,可以用于检测容器状态,自动注册和注销docker容器的服务到服务配置中心。目前支持Consul、Etcd和SkyDNS2。
四,搭建consul集群环境
架构图如下:
主机 | 操作系统 | ip | 所需软件 |
---|---|---|---|
consul | centos7 | 192.168.100.135 | Docker 、Consul、Consul-template |
registrator | Centos 7 | 192.168.100.142 | Docker、registrator |
需求:
实现单机网络下容器与容器之间互通
使用Docker Compose创建容器
搭建Consul服务实现自动发现和更新
环境准备:关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
1.安装Consul
consul:192.168.100.135
编译安装consul
mkdir /root/consul
cd /root/consul
unzip consul_0.9.2_linux_amd64.zip
mv consul /usr/local/bin/
//设置代理,在后台启动 consul 服务端
consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-bind=192.168.80.15 \
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &
##############解释####################
//设置代理&#