Docker

consul分布式集群

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/

image.png8.创建客户端

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;
}



(0)
分享:

本文由:xiaoshu168.com 作者:xiaoshu发表,转载请注明来源!

标签:

相关阅读