Docker和DevOps:16.容器編排Swarm

一、多機多容器管理痛點

之前我們都是在一臺雲服務器中創建多個容器進行項目部署操作,但是實際過程中會出現多臺雲服務器多容器的情況,如何管理這多臺雲服務器中的多個容器?

  • 怎麼去管理多臺服務器中的多個容器?
  • 怎麼能方便的橫向拓展?即在集羣中再增加一臺雲服務器部署應用?
  • 如果一臺服務器中的某個容器down了,怎麼能自動恢復?
  • 如何去更新容器而不影響業務?
  • 如何去監控追蹤這些容器?
  • 怎麼去調度、控制容器的創建?
  • 怎麼保護隱私數據?

二、Swarm模式

1.簡介
  • Swarm是一個容器編排的工具,當然還有其他的工具可以用來做容器的編排。
  • Swarm它是內置於docker中的,安裝完docker後即可以使用swarm了,只是一開始我們使用的是單機模式,需要手動開啓Swarm模式。
    在這裏插入圖片描述
2.架構

在這裏插入圖片描述

三、創建Swarm集羣

1.環境準備

在本機準備四個虛擬機,分別模擬四個節點:
節點1:192.168.8.135
節點2:192.168.8.136
節點3:192.168.8.138
節點4:192.168.8.137
在這裏插入圖片描述

2.將節點1服務器聲明swarm Manager節點
docker swarm init --advertise-addr=192.168.8.135

在這裏插入圖片描述
出現提示當前節點已經是一個Manager節點,且如果要向這個集羣中添加worker節點,執行下面的語句即可。

3.將節點2、節點3、節點4當作worker節點添加到swarm集羣中

在這裏插入圖片描述
在這裏插入圖片描述

4.在節點1中查看該swarm集羣中的節點情況
docker node ls

顯示有一個leader節點,三個worker節點
在這裏插入圖片描述

四、Swarm Service和Swarm集羣操作

1.在Swarm Manager節點創建Service
docker service create --name=busybox_demo busybox sh -c "while true; do sleep 3600;done" 

在這裏插入圖片描述

2.在Manager節點中查看Service
docker service ls

在這裏插入圖片描述

3.在Manager節點中查看容器

發現有一個service名字.xxxx的容器
在這裏插入圖片描述

4.橫向擴展

manager節點中查看service信息發現有一項信息:MODE = replicatied 表示這個service可以橫向擴展。
// 在swarm集羣中拓展出5個

docker service scale busybox_demo=5

在這裏插入圖片描述

5.在Manager節點中查看Service和分佈情況
docker service ps busybox_demo

在這裏插入圖片描述
在這裏插入圖片描述
在其他節點服務器中執行docker ps會發現各個節點上都存在容器了。

6.在Node3節點中強制刪除一個容器
  • 在Node3節點中刪除容器
    在這裏插入圖片描述
  • 去Manager節點查看service信息,發現水平拓展的剩下了4個
    在這裏插入圖片描述
  • 很快,水平拓展又變回了5個
    在這裏插入圖片描述
  • 說明,當Swarm集羣中有容器退出或失效了,Manager會在集羣中選取一個節點,重新啓動一個容器進行修補。
7.在Manager節點中刪除Service
docker service rm [service名字]

在這裏插入圖片描述
刪除Service後,Manager節點會自動尋找在那些節點上有這個Service的容器,然後會去自動刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章