参考官网集群配置方式
https://hub.docker.com/r/progrium/consul/
 
集群中需要manager与node能通信consul的发现服务,不然,管理节点选举不了,无法执行docker 命令。
集群中consul工作3台的机器,大于等2台时,集群仍正常工作,如果,发生只有1台时,集群失效,无法选择管理节点,需要启动数据再次达到3台的标准后,集群才能慢慢恢复。
 
测试最终得出一个惊人结论,我把consul集群删除后,重新拉起时,元数据全部自动发现恢复。
 
 
10.40.100.145 docker-consul0.venic.com
10.40.100.146 docker-consul1.venic.com
10.40.100.147 docker-consul2.venic.com
 
 
 
首先在镜像服务器上148上,拉取一个官网 的 consul镜像,方便等下在其它三台上快速启动
# docker pull progrium/consul && docker tag progrium/consul:latest docker-registry.venic.com:5000/consul:latest
# docker push docker-registry.venic.com:5000/consul:latest
 
10.40.100.145上
 
docker run -d  --name consul0 --restart=always -v /mnt:/data \
    -p 8300:8300 \
    -p 8301:8301 \
    -p 8301:8301/udp \
    -p 8302:8302 \
    -p 8302:8302/udp \
    -p 8400:8400 \
    -p 8500:8500 \
    docker-registry.venic.com:5000/consul:latest -server -advertise 10.40.100.145 -bootstrap-expect 3
 
10.40.100.146上
 
docker run -d --name consul1 --restart=always -v /mnt:/data  \
    -p 8300:8300 \
    -p 8301:8301 \
    -p 8301:8301/udp \
    -p 8302:8302 \
    -p 8302:8302/udp \
    -p 8400:8400 \
    -p 8500:8500 \
    docker-registry.venic.com:5000/consul:latest  -server -advertise 10.40.100.146 -join 10.40.100.145
 
10.40.100.147上
 
docker run -d --name consul2 --restart=always -v /mnt:/data  \
    -p 8300:8300 \
    -p 8301:8301 \
    -p 8301:8301/udp \
    -p 8302:8302 \
    -p 8302:8302/udp \
    -p 8400:8400 \
    -p 8500:8500 \
    docker-registry.venic.com:5000/consul:latest  -server -advertise 10.40.100.147 -join 10.40.100.145
 
 
 
 
在Nginx上层代理配置consul的TCP代理转发
10.40.42.10
也是就是controller1和2
# vi 8500_consul.venic.com_10.40.100.145-147_8500.conf
upstream consul.venic.com {
    server 10.40.100.145:8500;
    server 10.40.100.146:8500;
    server 10.40.100.147:8500;
 
}
server {
    listen 8500;
    proxy_pass consul.venic.com;
}
 
 
测试可使用以下链接测试
http://10.40.42.10:8500/

Docker集群实验环境布署--swarm【3 注册服务监控与自动发现组件--consul】的更多相关文章

  1. Docker集群实验环境布署--swarm【1 架构说明】

    在读完<Docker技术入门与实践>这本书后,基本上已对Docker了有一些入门的理解,以及我们为什么要使用Docker 答:我们发现在实际工作中,通过openstack一旦把一个VM创建 ...

  2. Docker集群实验环境布署--swarm【5 容器启动组件--node】

    10.40.100.143 docker-node0.venic.com 10.40.100.144 docker-node1.venic.com     原用swarm镜像   直接启动     1 ...

  3. Docker集群实验环境布署--swarm【7 让docker客户端支持docker-compose】

    Docker-Compose是一个部署多个容器的简单但是非常必要的工具.   登录Docker客户端的服务器(默认是安装了docker-engine的服务器),再安装compose插件 # yum i ...

  4. Docker集群实验环境布署--swarm【6 配置上层Nginx代理,让任意Docker client访问得到高可用的管理API】

    10.40.42.10上,也就是对应的VRRP中的10.40.42.1和2上,配置nginx tcp代理   # cat 4000_manager.venic.com_10.40.100.141-14 ...

  5. Docker集群实验环境布署--swarm【4 管理组件--manager】

    主机分配如下,支持双活,中断其中1台,primary会通过consul自动重新选举   10.40.100.141 docker-manager0.venic.com 10.40.100.142 do ...

  6. Docker集群实验环境布署--swarm【2 搭建本地镜像仓库】

      在10.40.100.148上   # docker run -d -p 5000:5000 --restart=always --name docker-registry.venic.com - ...

  7. Docker集群管理(一)—— 基础docker+swarm+shipyard

    目的 学习docker的集群管理,摸索出高可用的docker微服务架构方案.本篇文章只初步的了解下swarm(docker新版已集成了swarm)的使用,了解docker的发现服务的基础方法(dock ...

  8. docker swarm的应用----docker集群的构建

    一.docker安装 这里我们安装docker-ce 的18.03版本 yum    -y remove docker  删除原有版本 #安装依赖包 [root@Docker ~]# yum -y i ...

  9. Docker 集群环境实现方式

    Docker 集群环境实现的新方式 近几年来,Docker 作为一个开源的应用容器引擎,深受广大开发者的欢迎.随着 Docker 生态圈的不断建设,应用领域越来越广.云计算,大数据,移动技术的快速发展 ...

随机推荐

  1. leetcode[50] N-Queens

    题目:给定一个n,那么在n*n的棋盘里面放国际象棋的皇后,皇后之间互不在攻击范围.(皇后的攻击范围是她所在位置的哪一行,那一列,和她的正负1的对角线) The n-queens puzzle is t ...

  2. C# File类的操作

    原文:C# File类的操作 File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和打开一个文件.File类方法的参 ...

  3. Get Resultset from Oracle Stored procedure

    http://stackoverflow.com/questions/1170548/get-resultset-from-oracle-stored-procedure

  4. Jenkins Slave 设置

    Jenkins Slave node环境变量设置有很多trap,在最近的工作当中,我把slave部署在red hat linux 上,进行c++项目的编译部署和发布,但是在执行工程的时候,总会报出某些 ...

  5. lex与yacc快速入门

    lex与yacc快速入门 [原创] 声明:原创文章,转载注明出处http://www.cnblogs.com/lucasysfeng/ 联系作者:lucasysfeng@gmail.com 第一节.l ...

  6. JavaScript module pattern精髓

    JavaScript module pattern精髓 avaScript module pattern是一种常见的javascript编码模式.这种模式本身很好理解,但是有很多高级用法还没有得到大家 ...

  7. 浅谈DevExpress<三>:在GridView中加载动态图片

    今天的演示效果如下:在GridView中的下拉框中选中一种颜色,则后面的加载相应的图片,如下图: 1.

  8. 二分法-C++

    对于一个非线性方程f(x)=0求改方程的根,我们的思路可以这么想: 1.根的存在性.若该方程没有根,何必徒劳想法设法去求它的解呢?对于一个方程,我们怎么去找他的根,有连续函数零点定理可知:若有f(a) ...

  9. 逻辑回归模型(Logistic Regression, LR)基础

    逻辑回归模型(Logistic Regression, LR)基础   逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函 ...

  10. 初探中间件(middleware)

    初探中间件(middleware) 因为考虑到文章的长度, 所以 BaseHandler 的展开被推迟了. 在 BaseHandler 中隐藏着中间件的信息, 较常见的 SessionMiddlewa ...