- 大概配置 沒有完整測試------
- 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