consul分布式集群
1.创建网络
docker network create --subnet=172.200.7.0/10 mynetwork
2.拉取consul镜像
docker pull consul:1.4.4
3.创建容器(第一个consul容器)
docker run -d -p 8510:8500 -v /docker/consul/data/server1:/consul/data -v /docker/consul/conf/server1:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --network=mynetwork --ip 172.200.7.6 --privileged=true --name=consul1 consul:1.4.4 agent -server -bootstrap-expect=3 -ui -node=consul11 -client='0.0.0.0' -data-dir /consul/data -config-dir /consul/config -datacenter=xiaoshu611
4.查看容器的ip
docker inspect consul1 | grep "IPAddress"
5.创建容器(第二个consul容器)
docker run -d -p 8520:8500 -v /docker/consul/data/server2:/consul/data -v /docker/consul/conf/server2:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --network=mynetwork --ip 172.200.7.7 --privileged=true --name=consul2 consul:1.4.4 agent -server -ui -node=consul2 -client='0.0.0.0' -datacenter=xiaoshu611 -data-dir /consul/data -config-dir /consul/config -join=172.200.7.6
6.创建容器(第三个consul容器)
docker run -d -p 8530:8500 -v /docker/consul/data/server3:/consul/data -v /docker/consul/conf/server3:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --network=mynetwork --ip 172.200.7.8 --privileged=true --name=consul3 consul:1.4.4 agent -server -ui -node=consul3 -client='0.0.0.0' -datacenter=xiaoshu611 -data-dir /consul/data -config-dir /consul/config -join=172.200.7.6
7.访问测试这个是我本地的ip
http://192.168.211.130:8530/
8.创建客户端
docker run -d -p 8550:8500 -v /docker/consul/conf/client1:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --network=mynetwork --ip 172.200.7.9 --name=consul5 --privileged=true consul:1.4.4 agent -node=consul5 -join=172.200.7.6 -client='0.0.0.0' -datacenter=xiaoshu611 -config-dir /consul/config
9.服务注册配置文件
{ "services":[ { "id":"test1", "name":"test1name", "tags":["xiaoshu611-/core.product"], "address":"192.168.211.130", "port":18306, "checks":[ { "name":"core.product.check", "http":"http://192.168.211.130:18306", "interval":"10s", "timeout":"5s" }] }] }
10.在客户端就可以看到刚用文件方式注册的服务了
11.Consul 集群之负载均衡
本例可以将主机端口8500均匀地分散到8510,8520,8530.
可以通过Nginx建了一个负载均衡入口,即通过8500访问8510、8520即8530。
参考:
server { listen 8500; location / { proxy_pass http://xdpconsul; proxy_redirect default; } } upstream xdpconsul { server 127.0.0.1:8510 weight=2; server 127.0.0.1:8520 weight=1; server 127.0.0.1:8530 weight=1; }
本文由:xiaoshu168.com 作者:xiaoshu发表,转载请注明来源!