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