首页 > 作文

Docker容器部署consul的详细步骤

更新时间:2023-04-04 22:30:21 阅读: 评论:0

目录
consul简介consul 使用场景-consul部署-容器服务自动加入consul集群安装gliderlabs/registrator gliderlabs/registrator测试服务发现功能是否正常安装consul-template安装nginx配置并启动template

consul简介

consul 是一个支持多数据中心分布式高可用的 服务发现 和 配置共享 的服务软件,由 hashicorp 公司用 go 语言开发, 基于 mozilla public licen 2.0 的协议进行开源。 consul 支持 健康检查,并允许 http 、grpc 和 dns 协议调用 api 存储键值对.
命令行超级好用的虚拟机管理软件 vgrant 也是 hashicorp 公司开发的产品.
一致性协议采用 raft 算法,用来保证服务的高可用. 使用 gossip 协议管理成员和广播消息, 并且支持 acl 访问控制.

consul 使用场景

docker 实例的注册与配置共享coreos 实例的注册与配置共享saas 应用的配置共享、服务发现和健康检查。vitess 集群与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件

-consul部署-

服务器:192.168.37.100docker-ce、consul、consul-template
服务器:192.168.37.107docker-ce、registrator
template模板(更新配置文件)
registrator(自动发现+注册到consul-rver端)
后端每更新出一个容器,会向registrator进行注册,控制consul完成更新操作,consul会触发consultemplate模板进行热更新(reload)
核心机制: consul :自动发现、自动更新,为容器提供服务关注的意思(添加、删除、生命周期)———consul服务器

创建consul目录

[root@localhost ~]# hostnamectl t-hostname consul[root@localhost ~]# su[root@consul ~]# mkdir /root/consul

将consul压缩包压缩并放到/u/bin下

[root@consul ~]# cd consul/[root@consul ~/consul]# lsconsul_0.9.2_linux_amd64.zip[root@consul ~/consul]# unzip consul_0.9.2_linux_amd64.ziparchive:  consul_0.9.2_linux_amd64.zip  inflating: consul[root@consul ~/consul]# lsconsul  consul_0.9.2_linux_amd64.zip[root@consul ~/consul]# mv consul /usr/bin/

配置consul的模式

onsul agent \
-rver \ rver模式
-bootstrap 前端框架
-ui \ 可被访问的web界面
-data-dir=/var/lib/consul-data \
-bind=192.168.37.100 \
-client=0.0.0.0 \ registrator(应用服务器-docker-tomcat/apache)
-node=consul-rver01 &> /var/ log / consul.log &

[root@consul ~/consul]# consul agent \> -rver \> -bootstrap \> -ui \> -data-dir=/var/lib/consul-data \> -bind=192.168.37.100 \> -client=0.0.0.0 \> -node=consul-rver01 &> /var/log/consul.log &[1] 24144[root@consul ~/consul]# consul membersnode             address              status  type    build  protocol  dcconsul-rver01  192.168.37.100:8301  alive   rver  0.9.2  2         dc1

此时我们看群集信息

[root@consul ~/consul]# consul membersnode             address              status  type    build  protocol  dcconsul-rver01  192.168.37.100:8301  alive   rver  0.9.2  2         dc1

查看详细信息,过滤出leader

[root@consul ~/consul]# consul info | grep leader        leader = true        leader_addr = 192.168.37.100:8300

查看consul界面。使用8500端口,8300是通信端口

容器服务自动加入consul集群

安装gliderlabs/registrator gliderlabs/registrator

可检查容器运行状态自动注册,还可注册docker容器的服务信息到服务配置中心(consul 8300 —–》8500展示)。目前支持consul、etcd和skydns2。

在192.168.37.107执行以下操作

[root@rver ~]# docker run -d \> --name=registrator \> --net=host \> -v /var/run/docker.sock:/tmp/docker.sock \> --restart=always \> gliderlabs/registrator:latest \> -ip=192.168.37.107 \> consul://192.168.37.100:8500 ###下面的是加载unable to find image 'gliderlabs/registrator:latest' locallylatest: pulling from gliderlabs/registratorimage docker.io/gliderlabs/registrator:latest us outdated schema1 manifest format. plea upgrade to a sc        hema2 image for better future compatibility. more information at https://docs.docker.com/registry/spec/depr        ecated-schema-v1/c87f684ee1c2: pull completea0559c0b3676: pull completea28552c49839: pull completedigest: sha256:6e708681dd52e28f4f39d048ac75376c9a762c44b3d75b2824173f8364e52c10status: downloaded newer image for glid情人节贺卡erlabs/registrator:latest2536df1b1fbb77dcbf5d2e09295f222496ecc63f00a49020ce6976decd52a439

查看容器

[root@rver ~]# docker ps -acontainer id   image                           command                  created          status          ports     names2536df1b1fbb   gliderlabs/registrator:latest   "/bin/registrator -i…"   51 conds ago   up 50 conds             registrator

测试服务发现功能是否正常

安装两个nginx和2个apache

docker run -itd -p:83:80 --name test-01 -h test01 nginxdocker run -itd -p:84:80 --name test-02 -h testo2 nginxdocker run -itd -p:88:80 --name test-03 -h test03 httpddocker run -itd -p:89:80 --name test-04 -h test04 httpd

此时去网页查看

安装consul-template

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

这种强大的抽象功能和查询语言模板可以使consul-template 特别适合动态的创建配置文件。例如:创建 apache/nginx (nginx upstream) proxy balancers、haproxy backends

准备template nginx模板文件

————————————————–在consul上操作—————————————————-

[root@consul ~/consul]# vim nginx.ctmp1upstream http_backend {     {{range rvice "nginx"}}       rver {{.address}}:{{.port}};        {{end}}}rver {    listen 83;    rver_name localhost 192.168.37.100;    access_log /var/log/nginx/xiao.cn-access.log;    index index.html index.php;     location / {        proxy_t_header host $host;        proxy_t_header x-real-ip $remote_addr;        proxy_t_header client-ip $remote_addr ;        proxy_t_header x-forwarded-for $proxy_add_x_forwarded_for;        proxy_pass http://http_backend;     }

安装nginx

####安装所需软件包[root@rver ~]# yum install gcc pcre-devel zlib-devel -y###解压nginx软件包[root@rver ~]# tar zxf nginx-1.12.0.tar.gz###执行[root@rver /opt/nginx-1.12.0]# ./configure --prefix=/usr/local/nginx##编译[root@rver /opt/nginx-1.12.0]# make && make install

修改配置文件,让其识别.conf文件结尾的文件

创建vhost目录

[root@rver /usr内蒙古警察学院/local/nginx/conf]# mkdir vhost

创建nginx日志目录

[root@rver /usr/local/nginx/conf/vhost]#三角形的分类 mkdir /var/log/nginx.log

启动nginx

[root@rver /usr/local/sbin]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/[root@rver /usr/local/sbin]# nginx

查看是否启动

[root@rver /usr/local/sbin]# netstat -natp |grep nginxtcp        0      0 0.0.0.0:80              0.0.0.0:*               listen      54739/nginx: master

配置并启动template

[root@consul ~/consul]# u拓展训练方案nzip consul-template_0.19.3_linux_amd64.ziparchive:  consul-template_0.19.3_linux_amd64.zip  inflating: consul-template[root@consul ~/consul]# lsconsul_0.9.2_linux_amd64.zip  consul-template  consul-template_0.19.3_linux_amd64.zip  nginx.ctmp1[root@consul ~/consul]# mv consul-template /usr/bin

##关联nginx虚拟目录中的子配置文件操作

[root@consul ~/consul]# consul-template -consul-addr 192.168.37.100:8500 \> -template "/root/consul/nginx.ctmp1:/usr/local/nginx/conf/vhost/xiao.conf:/usr/local/nginx/sbin/nginx -s reload" \> --log-level=info

查看生成配置文件

是都可以访问。

到此这篇关于docker容器部署consul的详细步骤的文章就介绍到这了,更多相关dockerconsul部署内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 22:30:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/031f925a32ce32e270a3171090c71e94.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Docker容器部署consul的详细步骤.doc

本文 PDF 下载地址:Docker容器部署consul的详细步骤.pdf

标签:容器   配置文件   发现   集群
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图