docker 的水平拓展和负载均衡 —— scale


 

 

说明:假设你想启动3个 redis,那么你先使用 docker-compose up -d,起来一个服务,然后再使用 scale 进行拓展

 

1、docker-compose.yml 文件:

version: '3'
services:
  web:
    image: nginx

  redis:
    image: redis

 

—— 请注意,这里因为我们要使用到水平拓展,所以是不能绑定端口的,即不能设定以下内容:

 

2、执行 scele:

docker-compose up --scale web=3 -d

—— 这里的 --scale web=3,是我们设定的服务里面的web 需要启动三个容器。

—— 我们使用 docker-compose ps ,能够查看到此时三个 web 的容器都开启了5000端口,但是并没有映射到本地。

如下:自然生成了三个 web 服务

 

 

—— 我们需要使用一个负载均衡器(HAProxy)将请求分散到三个容器,然后可以通过三个容器再进行请求真正的压力,这就是负载均衡的概念, 如下:

 

3、如果这时候想把 web 容器拓展成 10 个,那么执行一样的命令即可:

docker-compose up --scale web=10 -d

—— 会自动重启,并开启10个。

 

4、使用haproxy 的 docker-compose.yml 文件示例:

version: '3'
services:
  web:
    image: nginx

  redis:
    image: redis
  lib: 
    image: dockercloud/haproxy 
    links: 
      - web 
    ports: 
      - 8080:80 

 

然后执行:

docker-compose up -d

然后拓展 web =3:

docker-compose up --scale web=3 -d

然后访问127.0.0.1:8080,每次返回的主机是不一样的。

———— 以上,scale 是单机的,可以在多机子上使用 swarm / k8s 等

 

 

———— 未实验成功,之后再说。 

 

 

 

 

 

 

 

————占位符


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM