Docker Swarm 橫向擴容/收縮簡單使用


  Swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主機抽象為一個整體,並且通過一個入口統一管理這些 Docker 主機上的各種 Docker 資源。 Swarm 和 Kubernetes 比較類似,但是更加輕,具有的功能也較 kubernetes 更少一些。 

  Swarm 橫向擴容准備服務器:

  swarm1(master):192.168.75.191

  swarm2(node1):192.168.75.192

  swarm3(node2):192.168.75.193

注:docker 1.12 版本后都自帶 swarm 命令,無需安裝

 

 

 一、啟動集群

在 swarm1 上啟動集群,即 swarm1 為 master 節點:

[root@swarm1 ~]# docker swarm init --listen-addr 192.168.75.191:1234

 

 

 #  --listen-addr 集群暴漏給外界調用的 HTTPAPI 的 socket 地址, IP 為本機 ip ,端口可自定義

上述命令運行成功會生成如下信息,此命令用於節點(被管理主機)加入集群

docker swarm join \

--token SWMTKN-1-6ampzvvbv1ul5y9omr3lvcrodetcdc3ukr9tn7158fcebc7olo-dx61lgmjyi0wwvx8pluizyucy \
    192.168.75.191:1234


在 swarm1 上查看各節點信息:

 [root@swarm1 ~]# docker node ls  #目前只有本機(管理主機 swarm1 )加入集群

 

 

 二、分別將 swarm2 & swarm3 節點(被管理節點)加入集群

 

 

 swarm1 (管理主機)再次查看節點信息,如下所示則集群添加成功

 

 

Swarm 集群以搭建完畢接下來進行橫向擴容/收縮

 三、測試:拉取tomcat鏡像,橫向擴容

  1、創建實例

  [swarm1 ~]# docker service create --replicas 1 --name tomcattest tomcat:latest

  # --replicas 始終運行實例數目

  # --name 運行服務名稱,非容器名稱

  [root@swarm1 ~]# docker service ps tomcattest #查看實例運行狀態

  

 

 

   2、橫向擴容/收縮

   [root@swarm1 ~]# docker service scale tomcattest=3

  #tomcattest服務增加為3個實例

  

 

 

  #實例自動在3台節點上分配,保證運行數量為3個實例,並且當某節點出現異常狀態導致該節點上的服務宕機,

  將會在其余節點自動運行實例。始終保持實例數量為需求數量。 

  3、停止 swarm3 節點,查看實例狀態

  [root@swarm3 ~]# systemctl stop docker

  

 

 

   在 swarm1 上查看服務運行狀態:

  [root@swarm1 ~]# docker service ps tomcattest

  

 

 

   #swarm3節點服務自動轉移至swarm1服務器上,實例數仍為3.

  swarm3 上 tomcat 實例為宕機狀態,且在 swarm1 上新生成實例,使 tomcat 實例總數仍為3

 

至此 Swarm 集群搭建以及簡單都橫向擴容及收縮都已經完成了。

后話:

  Swarm 雖為 Docker 官方提供的管理工具,但因 swarm 本身功能的不完善性,以及與其他插件的耦合度較低,所以現在基本都不建議使用 swarm 作為管理工具,現在較為流行的管理工具為 k8s ,這里就不多說了,大家有興趣就自行百度查看吧,另 Rancher 是目前比較新興的管理工具,使用 Rancher 可以來管理 k8s 集群。。。

 

 


免責聲明!

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



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