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

参考官网集群配置方式

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/

时间: 2024-10-18 01:01:32

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

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

10.40.100.143 docker-node0.venic.com 10.40.100.144 docker-node1.venic.com 原用swarm镜像 直接启动 10.40.100.143上 docker run -d  --restart=always --name node0 docker-registry.venic.com:5000/swarm:latest join --advertise=10.40.100.143:2375 consul://docker-consu

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

主机分配如下,支持双活,中断其中1台,primary会通过consul自动重新选举 10.40.100.141 docker-manager0.venic.com 10.40.100.142 docker-manager1.venic.com 首先在镜像服务器上148上,拉取一个官网 的 consul镜像,方便等下在其它三台上快速启动 # docker pull  swarm && docker tag swarm:latest docker-registry.venic.com:5000

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-142_4000.conf upstream manager.venic.com { server 10.40.100.141:4000; server 10.40.100.142:4000; } server { listen 4000; proxy_pass manager.venic.com; } 重

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

在10.40.100.148上 # docker run -d -p 5000:5000 --restart=always --name docker-registry.venic.com -v /data:/var/lib/registry  registry 参数说明: --restart=always 是将来重启宿主机的docker服务时,容器也能自启动 -v /docker/registry/data:/var/lib/registry  是将镜像文件存放目录挂载到本地硬盘中. 接下来下

如何在一台ESXi主机上搭建一整套VSAN集群的环境

从上周起,我开始翻译一本新书.IT类中文书籍的翻译往往有一个术语的问题,如何选择最准确的中文术语,让读者清楚明白而且在实际操作和配置的时候不至于误解,是一件不那么容易的事情.一个简单的例子就是cluster,中文可以译作"集群"或者"群集".这两者本身都广为使用,而且是完全相同的意思.我查了一下中文亚马逊书店,136本IT类中文图书用了"集群",29本用了"群集".看上去"集群"更为普及一些,而且我本人也习

Docker 集群环境实现方式

Docker 集群环境实现的新方式 近几年来,Docker 作为一个开源的应用容器引擎,深受广大开发者的欢迎.随着 Docker 生态圈的不断建设,应用领域越来越广.云计算,大数据,移动技术的快速发展,加之企业业务需求的不断变化,紧随技术更新的步伐,导致企业架构要随时更改以适合业务需求.当前,越来越多的公司都已将以 Docker 为代表的容器技术用于企业级业务平台,比如:腾讯,京东,美团,新浪,阿里巴巴等互联网公司.数据的安全.Docker 容器的稳定运行是众多用户关注的,这就要求我们提供一套行

Docker 集群环境实现的新方式

近几年来,Docker 作为一个开源的应用容器引擎,深受广大开发者的欢迎.随着 Docker 生态圈的不断建设,应用领域越来越广.云计算,大数据,移动技术的快速发展,加之企业业务需求的不断变化,紧随技术更新的步伐,导致企业架构要随时更改以适合业务需求.当前,越来越多的公司都已将以 Docker 为代表的容器技术用于企业级业务平台,比如:腾讯,京东,美团,新浪,阿里巴巴等互联网公司.数据的安全.Docker 容器的稳定运行是众多用户关注的,这就要求我们提供一套行之有效的管理大型容器集群的整体解决方

Swarm实现Docker集群的搭建和管理。

1.Swarm是一个由Docker开发的调度框架. (图网上找的) 2.负载均衡: Docker称之为入口负载均衡(ingress load balancing).它的工作方式是,所有worker节点都监听在发布的服务端口上.当该服务被外部系统调用时,收到流量的节点会通过Docker提供的内部DNS服务,将流量负载均衡不同的worker上. (图网上找的) 3.docker集群搭建. (1).时间同步:yum install –y ntpdatentpdate us.pool.ntp.org (

Elk+filebeat收集docker集群swarm中的nginx和tomcat容器的日志信息

前言: 之前有说过elk收集nginx日志, 现在来说一下收集容器集群的日志收集Elk的安装这里不在说了,上来直接怼, 这里是elk的服务器:的服务状态:以及端口 Logstash是主要的配置内容这里: 如下 input { beats { port => 5044 } } filter { if "nginx-accesslog" in [tags] { grok { match => { "message" => "%{HTTPDAT