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发表,转载请注明来源!