广告
返回顶部
首页 > 资讯 > 服务器 >Docker容器部署consul的详细步骤
  • 932
分享到

Docker容器部署consul的详细步骤

2024-04-02 19:04:59 932人浏览 泡泡鱼
摘要

目录Consul简介Consul 使用场景-consul部署- 容器服务自动加入consul集群安装Gliderlabs/ReGIStrator Gliderlabs/Re

Consul简介

Consul 是一个支持多数据中心分布式高可用的 服务发现 和 配置共享 的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源。 Consul 支持 健康检查,并允许 Httpgrpc 和 DNS 协议调用 api 存储键值对.
命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品.
一致性协议采用 Raft 算法,用来保证服务的高可用. 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制.

Consul 使用场景

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

-consul部署- 

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

创建consul目录


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

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

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

配置consul的模式 

onsul agent \
-server \                 server模式
-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-server01 &> /var/ log / consul.log & 

[root@consul ~/consul]# consul agent \
> -server \
> -bootstrap \
> -ui \
> -data-dir=/var/lib/consul-data \
> -bind=192.168.37.100 \
> -client=0.0.0.0 \
> -node=consul-server01 &> /var/log/consul.log &
[1] 24144
[root@consul ~/consul]# consul members
Node             Address              Status  Type    Build  Protocol  DC
consul-server01  192.168.37.100:8301  alive   server  0.9.2  2         dc1

此时我们看群集信息

[root@consul ~/consul]# consul members
Node             Address              Status  Type    Build  Protocol  DC
consul-server01  192.168.37.100:8301  alive   server  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@server ~]# 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' locally
latest: Pulling from gliderlabs/registrator
Image docker.io/gliderlabs/registrator:latest uses outdated schema1 manifest fORMat. Please 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 complete
a0559c0b3676: Pull complete
a28552c49839: Pull complete
Digest: sha256:6e708681dd52e28f4f39d048ac75376c9a762c44b3D75b2824173f8364e52c10
Status: Downloaded newer image for gliderlabs/registrator:latest
2536df1b1fbb77dcbf5d2e09295f222496ecc63f00a49020ce6976decd52a439

查看容器


[root@server ~]# docker ps -a
CONTaiNER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS     NAMES
2536df1b1fbb   gliderlabs/registrator:latest   "/bin/registrator -i…"   51 seconds ago   Up 50 seconds             registrator

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

安装两个nginx和2个apache

docker run -itd -p:83:80 --name test-01 -h test01 nginx
docker run -itd -p:84:80 --name test-02 -h testo2 nginx
docker run -itd -p:88:80 --name test-03 -h test03 httpd
docker 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.ctmp1
upstream http_backend {
     {{range service "nginx"}}
       server {{.Address}}:{{.Port}};
        {{end}}
}
server {
    listen 83;
    server_name localhost 192.168.37.100;
    access_log /var/log/nginx/xiao.cn-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;
     }

 安装nginx

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

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

 创建vhost目录

[root@server /usr/local/nginx/conf]# mkdir vhost

创建nginx日志目录

[root@server /usr/local/nginx/conf/vhost]# mkdir /var/log/nginx.log

启动nginx

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

查看是否启动


[root@server /usr/local/sbin]# netstat -natp |grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      54739/nginx: master

配置并启动template

[root@consul ~/consul]# unzip consul-template_0.19.3_linux_amd64.zip
Archive:  consul-template_0.19.3_linux_amd64.zip
  inflating: consul-template
[root@consul ~/consul]# ls
consul_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的详细步骤的文章就介绍到这了,更多相关Docker consul 部署内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Docker容器部署consul的详细步骤

本文链接: https://www.lsjlt.com/news/138319.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker容器部署consul的详细步骤
    目录Consul简介Consul 使用场景-consul部署- 容器服务自动加入consul集群安装Gliderlabs/Registrator Gliderlabs/Re...
    99+
    2022-11-13
  • Docker部署MicrosoftSqlServer详细步骤
    目录1 背景2 创建容器3 修改SA密码4 链接mssql5 容器外链接mssql总结1 背景 自 SQL Server 2019 CU3 起,支持 Ubuntu 18.04。 自 ...
    99+
    2022-11-12
  • Docker部署portainer的详细步骤
    portainer Portainer是Docker的图形化管理工具,由GO语言编写的,提供状态显示、应用模板快速部署、对于Docker(容器、镜像、网络、数据卷)的基本操作、日志显...
    99+
    2022-11-13
  • Docker下部署lnmp详细步骤
    目录拉取一个centos镜像基于centos生成nginx容器基于centos生成mysql容器基于centos生成php容器制作镜像用新镜像创建lnmp容器测试拉取一个centos...
    99+
    2022-11-12
  • Docker 部署 Gitlab 服务器(详细步骤)
    目录         Gitlab镜像 1、拉取Gitlab镜像 2、启动Gitlab容器  3、修改配置 4、浏览器访问  5、修改root密码 6、gitlab操作 Gitlab镜像 1、拉取Gitlab镜像 docker pul...
    99+
    2023-09-06
    docker
  • Docker容器Consul部署概述
    目录一、Consul概述二、Consul的特性三、Consul的使用场景四、搭建consul集群(1)server部署(2)client部署(3)配置template模板自动更新(4...
    99+
    2022-11-13
    Docker容器Consul部署 Docker Consu
  • Docker容器如何部署consul
    小编给大家分享一下Docker容器如何部署consul,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Consul简介Consul 是一个支持多数据中心分布式高可用...
    99+
    2023-06-29
  • 基于docker 部署canvas-lms的详细步骤
    准备: 一台8G内存的服务器。安装好docker, pull一个ubuntu镜像下来, 可以是最新版也可以是官方支持的14/ 16 更新时间: 2018-04-04 Step 1: ...
    99+
    2022-11-13
  • Docker容器下部署Git的步骤
    这篇文章主要讲解了“Docker容器下部署Git的步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker容器下部署Git的步骤”吧!老办法 我实在没...
    99+
    2022-10-19
  • centos搭建部署docker环境的详细步骤
    目录1、Docker的存在解决的问题1.1 统一标准1.2 资源隔离2、Docker的建构3、安装Docker1、卸载以前安装的docker2、配置yun源3、安装docker4、启动docker并设置为开机自启5、查看一下当前的docke...
    99+
    2022-09-23
  • Linux系统docker部署.net core3.1的详细步骤
    此篇文章演示基本的基于docker部署.netcore服务,linux系统腾讯云ubuntu,.net core版本3.1。 1.安装docker apt install docke...
    99+
    2022-11-13
  • 部署MySQL的详细步骤
    本篇内容主要讲解“部署MySQL的详细步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“部署MySQL的详细步骤”吧! 1.新建配...
    99+
    2022-10-18
  • 在Docker快速部署Node.js应用的详细步骤
    一、前言 可能还有一些同学不了解docker这个项目,docker是由go语言编写的,一个快速部署的轻量级虚拟技术项目,他允许开发人员将自己的程序和运行环境一起打包,制作成一个docker的image(镜像...
    99+
    2022-06-04
    步骤 快速 详细
  • docker部署mysql并挂载外部文件详细步骤
    去搜索mysql的镜像 docker search mysql 选择自己需要的版本对应的镜像,拉取镜像 docker pull mysql 不带版本号默认拉取最新版本对的镜像 创建外部挂载的文件...
    99+
    2023-09-20
    mysql docker
  • docker容器部署redis步骤是什么
    这篇文章主要介绍“docker容器部署redis步骤是什么”,在日常操作中,相信很多人在docker容器部署redis步骤是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”docker容器部署redis步骤...
    99+
    2023-06-21
  • IDEA 集成 docker 实现远程部署的详细步骤
    1. docker 服务器开启远程访问 登录 docker 所在的远程服务器,使用命令 vim /usr/lib/systemd/system/docker.service 修改配置...
    99+
    2022-11-12
  • 关于docker容器部署redis步骤介绍
    目录1 redis配置文件2 docker命令启动3 docker-compose启动1 redis配置文件 官方下载:redis.conf 路径:在容器中,一般可以保存在/etc/...
    99+
    2022-11-12
  • Docker容器里部署Apache+PHP+MariaDB+phpMyAdmin的步骤
    这篇文章主要讲解了“Docker容器里部署Apache+PHP+MariaDB+phpMyAdmin的步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Do...
    99+
    2022-10-18
  • Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤
    Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤 记录从打包到服务器配置上线全流程 安装docker 详细步骤请戳这里 用yum源安装用yum源安装 查看是否已安装docker列表 ...
    99+
    2022-06-03
    Linux Docker SpringBoot IDEA一键自动化部署 IDEA一键自动化部署
  • Docker部署java项目的详细步骤(利用Dockerfile方式)
    目录前言1. 首先找一个你熟悉的目录下创建一个目录upload(这个目录可以随便),并把java的linux和jar包上传进去2. 创建一个名为 Dockerfile文件3. 以上命...
    99+
    2022-11-13
    docker如何部署java项目 docker下部署java的web应用 docker搭建java环境
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作