Docker-consul部署

一、Consul

1、Consul概述

后端每构建出一个容器就会向registrator注册,控制consul完成更新操作,consul会触发consul template模板进行热更新。

2、Consul特性

①支持健康检查,允许存储键值对
②基于go语言开发,可移植性强
③支持ACL访问控制

3、使用场景

Consul的使用场景包括服务发现、服务隔离、服务配置
①服务发现场景中consul作为注册中心,服务地址被注册到consul益州,可以使用consul提供的dns、http接口查询,consul支持健康检查。
②服务隔离场景中consul支持以服务为单位设置访问策略,能同时支持经典平台和新兴平台。
③服务配置场景中consul提供key-value数据存储功能,并且能够将变动迅速通知下去,借助consul可以实现配置共享,需要读取配置的服务可以从consul中读取到准确的配置信息。
④consul可以帮助系统管理者更清晰了解复杂系统内部系统架构,运维可以将consul看成一种监控软件,也可以堪称一种资源管理系统。

二、搭建consul集群

1、环境

server端
192.168.10.101
docker-ce docker-compose consul nginx consul-template
client端
192.168.10.102
docker-ce registrator nginx

2、service配置

创建目录

在这里插入图片描述

上传文件并解压到指定目录

在这里插入图片描述
在这里插入图片描述

配置

consul agent
-server
-bootstrap
-ui
-data-dir=/var/lib/consul-data
-bind=192.168.10.101
-client=0.0.0.0
-node=consul-server01 &> /var/log/consul.log &
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查看

集群server成员

curl 127.0.0.1:8500/v1/status/peers
在这里插入图片描述

集群leader

curl 127.0.0.1:8500/v1/status/leader
在这里插入图片描述

注册的服务

curl 127.0.0.1:8500/v1/catalog/sercices

查看服务信息

curl 127.0.0.1:8500/v1/catalog/nginx

查看集群节点详细信息

curl 127.0.0.1:8500/v1/catalog/nodes
在这里插入图片描述

3、client配置

docker run -d
–name=registrator
–net=host
-v /var/run/docker.sock:/tmp/docker.sock
–restart=always
gliderlabs/registrator:latest
-ip=192.168.10.102
consul://192.168.10.101:8500
在这里插入图片描述
docker images
拉取一个registrator镜像
Gliderlabs/Registrator 可检查容器运行状态自动注册,还可注销 docker 容器的服务到服务配置中心。目前支持 Consul、Etcd 和 SkyDNS2。
在这里插入图片描述

4、验证

启动3个容器
在这里插入图片描述
访问8500端口
在这里插入图片描述

三、配置template模板自动更新

1、consul-template概述

consul-template是一个守护进程,用于实时查询consul集群信息并更新文件系统上任意数量的指定模板生成配置文件,更新完成以后,可以查询consul中的服务目录、key、key-values等。

2、template nginx模板文件

upstream http_backend {
{{range service “nginx”}}
server {{.Address}}:{{.Port}};
{{end}}
}

server {
listen 100;
server_name localhost 192.168.10.101;
access_log /var/log/nginx/lic.com-access.log;
index index.html index.php;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Client-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://http_backend;
}
}

在这里插入图片描述

3、安装nginx并启动

安装

yum -y install pcre-devel zlib-devel gcc gcc-c++ make &> /dev/null
useradd -M -s /sbin/nologin nginx
wget http://101.34.22.188/lnmp_wordpress/nginx-1.15.9.tar.gz -P /opt &> /dev/null
tar xf /opt/nginx-1.15.9.tar.gz -C /opt/
cd /opt/nginx-1.15.9/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make -j 4 && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/.

添加虚拟主机目录

vim /usr/local/nginx/conf/nginx.conf
在这里插入图片描述

创建虚拟主机

在这里插入图片描述

4、编译安装template

在这里插入图片描述

5、前台启动

consul-template -consul-addr 192.168.10.101:8500 -template “/root/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/lic.conf:/usr/local/nginx/sbin/nginx -s reload” --log-level=info
将监听到的nginx.conf文件同步到vhost目录下的lic.conf文件中并重启服务日志级别info
在这里插入图片描述
在这里插入图片描述

6、测试

再添加一个nginx容器
在这里插入图片描述
自动更新
在这里插入图片描述

7、增加docker节点,测试

在这里插入图片描述
在这里插入图片描述
consul agent
-server
-ui
-data-dir=/var/lib/consul-data
-bind=192.168.10.104
-client=0.0.0.0
-node=consul-server02
-enable-script-checks=true
-datacenter=dc1
-join 192.168.10.101 &> /var/log/consul.log &
在这里插入图片描述
-enable-script-checks=true :设置检查服务为可用
-datacenter : 数据中心名称
-join :加入到已有的集群中
主机检测
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值