您的位置:首页 > 运维架构 > Docker

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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: