docker consul

这里写目录标题

  • 概念
    • consul
    • Consul的作用
    • Consul-template概述
    • registrator的作用(自动发现)
  • 实验部署
    • 部署consul 服务器
      • 拖入安装包并安装
      • 查看集群信息
      • 通过http api 获取集群信息
    • 容器服务自动加入consul集群
        • 安装Gliderlabs/registrator
      • 测试服务
      • 验证http和nginx服务是否注册到consul
    • 安装consul-template
      • 拖入安装包解压
      • 准备template nginx模板文件
      • 部署nginx
      • 启动tempiate
      • 测试

概念

consul

1.Consul是HashiCorp公司推出的开源工具,Consul由Go语言开发。部署部署起来非常容易,只需要极少的可执行程序和配置文件,具有绿色,轻量级的特点。
2.Consul是分布式的,高可用的,可横向扩展的用于实现分布式系统的服务发现与配置

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

registrator的作用(自动发现)

一个由GO语言编写的。针对docker使用的,可以用于检测容器状态,自动注册和注销docker容器的服务到服务配置中心。目前支持Consul,Etcd和SkyDNS2

总结 :后端没构建出一个容器,会向regitrator进行注册,控制consul完成更新操作,consul会接触consul template模板进行更新,核心机制:consul:自动发现自动更新,为容器提供服务(添加,删除,生命周期)

实验部署

实验背景:nginx+tomcat实现对tomcat的反向代理
问题/需求:当后端tomcat节点大批量增加,需要在保证服务不中断的情况下在nginx配置文件增加这些后端节点的地址

docker consul_第1张图片
实例环境

主机 操作系统 IP地址 主要软件版本
consul centos7 192.168.50.12 docker consul consul-template
registrator centos7 192.168.50.20 docker registrator

部署consul 服务器

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 <

你可能感兴趣的:(docker consul)