实现要求:
使用Haproxy进行负载均衡,在配置文件中手动添加或删除节点服务器信息,比较麻烦。
通过Registrator收集需要向Consul注册为Haproxy节点服务器的信息,然后用Consulkey/value注册。
L-template从Consul键/值读取信息,然后自动修改Haproxy配置文件并重新加载Haproxy。不需要修改haproxy.cfg
群集环境:
Postil:这里省略了构建Mesos集群的过程。
关闭selinux和防火墙。
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config systemctl stop firewalld && systemctl disable firewalldZK服务器
容器来做consul: 获取Consul-server镜像 [root@zk-server ~]# docker pull docker.io/gliderlabs/consul-server 启动Consul-server [root@zk-server ~]# docker run -d --name=consul --net=host docker.io/gliderlabs/consul-server -bootstrap -bind=192.168.200.8主人要做领事
下载consul包并解压。
[root@zk-server ~]# wget https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_386.zip [root@zk-server ~]# unzip consul_0.6.4_linux_386.zip [root@zk-server ~]# mv consul /usr/bin/下载consul-template包并解压。
[root@zk-server ~]# wget https://releases.hashicorp.com/consul-template/0.15.0/consul-template_0.15.0_linux_386.zip [root@zk-server ~]# unzip consul-template_0.15.0_linux_386.zip [root@zk-server ~]# mv consul-template /usr/bin/安装并启动haproxy
创建consul服务器配置目录。
[root@zk-server ~]# mkdir /config编写代理和服务器的json文件
[root@zk-server ~]# vi /config/agent.json 添加内容如下: { "client_addr": "0.0.0.0", "data_dir": "/data", "leave_on_terminate": true, "dns_config": { "allow_stale": true, "max_stale": "1s" } } [root@zk-server ~]# vi /config/server.json 添加内容如下: { "ui": true, "dns_config": { "allow_stale": false } }启动consul单节点服务器。当然,如果你有更多的consul服务器节点,你也可以是一个consul集群。
Postil:consul成员可以用来查看consul集群节点。
slave1-服务器
获取注册商图像
[root@slave1 ~]# docker pull gliderlabs/registrator:latest开始注册
Postil:这个启动方法是用Consul的键/值注册的。
[root@slave1 ~]# docker run -d --restart=always --name=registrator --net=host --volume=/var/run/docker.sock:/tmp/docker.sock docker.io/gliderlabs/registrator -ip 192.168.200.10 consulkv://192.168.200.8:8500/helloPostil:-IP后跟注册所属的主机IP。必须设置该属性,否则服务IP将显示为127.0.0.1。
测试注册器是否用Consul键/值注册了本机容器
启动容器。
[root@slave1 ~]# docker run -d -P --name=test --net=bridge p_w_picpath/nginx进入咨询UI界面查看。
http://192.168.200.8:8500/ui/#/dc1/kv/
ZK服务器
创建领事配置目录
[root@zk-server ~]# mkdir -p /data/cfg/consul [root@zk-server ~]# vi /data/cfg/consul/tmpl.json 添加内容如下: consul = "127.0.0.1:8500" template { source = "/etc/haproxy/haproxy.ctmpl" destination = "/etc/haproxy/haproxy.cfg" command = "systemctl reload haproxy" }编写haproxy模板
开始咨询-模板
用marathon启动一个nginx容器,查看registrator是否向consul注册,然后查看consul-template是否自动将这个后端服务器添加到/etc/etc/haproxy/haproxy.cfg
访问HaProxy_IP
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)