部署Consul建立Docker集群
架构图
1、什么是consul
Consul的作用:Consul是HashiCorp公司推出的开源工具,Consul由Go语言开发,部署起来非常容易,只需要极少的可执行程序和配置文件,具有绿色、轻量级的特点。
Consul是分布式的、高可用的、可横向扩展的用于实现分布式系统的服务发现与配置。
- 服务注册与发现(主要功能):提供HTTP和DNS两种发现方式
- 健康检查,支持多种协议,HTTP、TCP等
- Key/Value存储
- 支持多数据中心
- 基于Golong语言,可移植性强
- 支持ACL访问控制
- 与Docker等轻量级容器可无缝配合
2、consul-template说明
Consul-Template是一个守护进程,用于实时查询Consul集群信息。
Consul-Template可以更新文件系统上任意数量的指定模板,生成配置文件, 更新完成以后,可以选择运行shell命令执行更新操作,重新加载Nginx。
Consul-Template可以查询Consul中的服务目录、Key、Key-values等。
这种强大的抽象功能和查询语言模板可以使Consul-Template特别适合动态的创建配置文件。
例如:创建Apache/Nginx Proxy Balancers、Haproxy Backends
3、registrator的作用
一个由Go语言编写的,针对docker使用的,可以用于检测容器状态,自动注册和注销docker容器的服务到服务配置中心。
目前支持Consul、Etcd和SkyDNS2。
4、部署
主机 | 操作系统 | IP地址 | 主要软件及版本 |
---|---|---|---|
consul | Centos 7 | 192.168.163.100 | Docker 、Consul、Consul-template |
registrator | Centos 7 | 192.168.163.150 | Docker、registrator |
Consul的作用:支持多数据中心分布式高可用的服务发现和配置共享。分布式的、高可用的、 可横向扩展的用于实现分布式系统的服务发现与配置。
Server1:安装Consul服务
#######################consul的部署(贼简单)##############
###创建目录CS
mkdir /CS
cd /CS
###导入安装包,进行解压,解压后为可运行程序
rz
unzip /CS/consul_0.9.2_linux_amd64.zip
###将服务移动到系统环境内
mv consul /usr/bin/
### 后台运行服务
consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-bind=192.168.88.47 \
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &
#######################说明####################
consul agent \ ##启动consul集群
-server \ ##指定server模式
-bootstrap \ ##设置引导模式
-ui \ ##启动UI界面
-data-dir=/var/lib/consul-data \ #指定数据存储目录
-bind=192.168.88.47 \ #绑定集群通信IP
-client=0.0.0.0 \ #指定监听的客户端网段,0表示所有
-node=consul-server01 &> /var/log/consul.log &
# 指定当前主机节点名称,将结果保存在指定目录下文件中,&在后台运行。
##