How swarm mode works_How services work

當你在swarm mode 下,使用docker engine 部署一個應用鏡像。你就是創建了一個服務。


在一些大型的應用程序中,頻繁更新的服務會做成一個服務鏡像來使用。


例如:

在一個分佈式的環境中運行一個HTTP服務,數據庫服務,還有其它可執行的程序。


當你創建一個服務,你需要定義使用哪個鏡像和在容器中執行哪些命令。

你也可以定義下面的選項:(可選)

  1. 在swarm外部的可用端口

  2. 一個overlay 網絡,用於連接swarm中其它的服務

  3. CPU和內存限制、預留

  4. 滾動更新策略

  5. 在swarm中運行的容器副本數量


服務,任務和容器


當你在swarm中部署一個服務,swarm manager 會接收你所定義的服務的狀態。

然後它會安排在一個或者多個容器副本節點部署你所定義的服務。

在swarm中運行的每個任務都是單獨存在的。


例如:

假設你要在三個HTTP 服務中進行負載均衡。如下圖所示:

在swarm中的每個實例就是一個任務。

services diagram


一個容器就是一個隔離的進程。在swarm mode 模型中,每個任務使用一個容器。

當scheduler分配一個容器,一個任務就和一個slot插槽相似。一旦這個容器激活了,scheduler會識別這個任務處於runing的狀態,如果這個容器啓動失敗,或者被停止,這個任務也隨之停止。



任務和計劃

在swarm集羣中,一個任務就是一個原子計劃。當你通過創建或者更新一個服務,來聲明一個你定義的服務,編排器會自動識別計劃任務的狀態。

例如:

如果你要定義一個服務讓編排器保持三個HTTP實例一直運行。編排器就會響應去創建三個任務。每個任務分配一個位置(即一個容器)。容器就是任務的實例化。如果HTTP監聽任務健康檢查失敗或者崩潰了,編排器會創建一個新的任務來實例化一個新的容器。


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