Docker集群实验环境布署--swarm【3 注册服务监控与自动发现组件--consul】
2017-01-16 17:42
1141 查看
参考官网集群配置方式 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/
集群中需要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【5 容器启动组件--node】
- Docker集群实验环境布署--swarm【4 管理组件--manager】
- 构建微服务实验环境(二):Docker Swarm 集群
- 搭建Docker Swarm集群实战(一)(服务发现使用consul)
- Docker集群实验环境布署--swarm【1 架构说明】
- Docker集群实验环境布署--swarm【7 让docker客户端支持docker-compose】
- 使用Docker搭建consul集群+registrator实现服务自动注册。
- 搭建Docker Swarm集群实战(二)(服务发现使用consul)
- Docker集群实验环境布署--swarm【6 配置上层Nginx代理,让任意Docker client访问得到高可用的管理API】
- 使用Docker搭建consul集群+registrator实现服务自动注册。
- Docker集群实验环境布署--swarm【2 搭建本地镜像仓库】
- Docker swarm集群环境实现的新方式(docker+swarm+consul)
- ElasticSearch集群未连接 无法发现节点(windows环境)以及windows环境下设置服务 不能自动启动的问题
- Swarm创建docker集群:服务发现-etcd
- .net core微服务之基于Docker+Consul+Registrator服务注册服务发现
- springcloud-1.使用Eureka -robbon构建自动服务发现注册集群和消费者
- 【Consul】 分布式环境中的服务注册和发现利器
- consul 服务发现 集群 docker 版
- Swarm创建docker集群:服务发现-配置文件法
- [转载]微服务注册发现集群搭建——Registrator + Consul + Consul-template + nginx