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 等
———— 未实验成功,之后再说。
————占位符
——————————————————————//////——欢迎光临,请多指教!可加QQ:349017128进行交流——//////——————————————————————