如何實現 Service 伸縮?- 每天5分鍾玩轉 Docker 容器技術(97)


上一節部署了只有一個副本的 Service,不過對於 web 服務,我們通常會運行多個實例。這樣可以負載均衡,同時也能提供高可用。

swarm 要實現這個目標非常簡單,增加 service 的副本數就可以了。在 swarm-manager 上執行如下命令:

docker service scale web_server=5

474.png

副本數增加到 5,通過 docker service ls  docker service ps 查看副本的詳細信息。

475.png

5 個副本已經分布在 swarm 的所有三個節點上。

481.png

默認配置下 manager node 也是 worker node,所以 swarm-manager 上也運行了副本。如果不希望在 manager 上運行 service,可以執行如下命令:

docker node update --availability drain swarm-manager

476.png

通過 docker node ls 查看各節點現在的狀態:

477.png

Drain 表示 swarm-manager 已經不負責運行 service,之前 swarm-manager 運行的那個副本會如何處理呢?用 docker service ps 查看一下:

478.png

swarm-manager 上的副本 web_server.2 已經被 Shutdown 了,為了達到 5 個副本數的目標,在 swarm-worker1 上添加了副本 web_server.2

482.png

前面我們的場景是 scale up,我們還可以 scale down,減少副本數,運行下面的命令:

docker service scale web_server=3

479.png

可以看到,web_server.4  web_server.5 這兩個副本已經被刪除了。

483.png

Service 的伸縮就討論到這里,下一節我們學習故障切換 Failover。

書籍:

1.《每天5分鍾玩轉Docker容器技術》
https://item.jd.com/16936307278.html

2.《每天5分鍾玩轉OpenStack》
https://item.jd.com/12086376.html

2.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM