- 大概配置 没有完整测试------
- consul-template:守护程序 用于实时欻性能consul集群数据 并更新文件系统上的任意数量的指定模板 生成配置文件 更新完成后可以选择运行任意shell命令
- gliderlabs/registrator:检查容器运行状态 自动注册和注销Docker容器的服务到服务配置中心 目前支持Consul etcd 和SkyDNS2
https://github.com/hashicorp/consul-template
https://releases.hashicorp.com/consul-template/0.19.3/consul-template_0.19.3_linux_amd64.zip
#consul-template 安装在nginx负载均衡节点
- docker主机启动注册器
#IP 注册到consul的地址 consul配置是要连接的conusl的地址
docker run -d \
--name=registrator \
--net =host \
-v /var/run/docker.sock:/tmp/docker.sock \
--restart=always \
gliderlabs/registrator:latest \
-ip=192.168.10.251 \
consul://192.168.10.252:8500
- 配置 consul-template
mkdir /usr/local/nginx/consul-template -p
cd /usr/local/nginx/consul-template
wget https://releases.hashicorp.com/consul-template/0.19.3/consul-template_0.19.3_linux_amd64.zip
unzip consul-template_0.19.3_linux_amd64.zip
rm -f consul-template_0.19.3_linux_amd64.zip
#consul-template 模板
cat >> /usr/local/nginx/consul-template/admin.ctmpl << EOF
upstream admin {
ip_hash;
{{range service "service-admin"}}
server {{.Address}}:{{.Port}} max_fails=3 fail_timeout=60 weight=1;
{{end}}
}
server {
listen 80 default_server;
# 映射博客后台管理服务
location /admin{
proxy_pass http://admin/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
EOF
#启动consul-template 生成nginx配置模板
#示例配置是生成全量的conf 其实可只生成upstream 模块
/usr/local/nginx/consul-template/consul-template \
-consul-addr=192.168.10.252:8500 \
-template "/usr/local/nginx/consul-template/admin.ctmpl:/usr/local/nginx/conf.d/admin.conf:/etc/init.d/nginx reload" \
-log-level=info