Docker學習之Docker Swarm

Docker Swarm 是 Docker 官方三劍客項目之一,提供 Docker 容器集羣服務,是 Docker 官方對容器雲生態進行支持的核心方案。
使用它,用戶可以將多個 Docker 主機封裝爲單個大型的虛擬 Docker 主機,快速打造一套容器雲平臺。

基本概念

Swarm 是使用 SwarmKit 構建的 Docker 引擎內置(原生)的集羣管理和編排工具。使用 Swarm 集羣之前需要了解以下幾個概念。

節點

運行 Docker 的主機可以主動初始化一個 Swarm 集羣或者加入一個已存在的 Swarm 集羣,這樣這個運行 Docker 的主機就成爲一個 Swarm 集羣的節點 ( node ) 。
節點分爲管理 ( manager ) 節點和工作 ( worker ) 節點
管理節點用於 Swarm 集羣的管理, docker swarm 命令基本只能在管理節點執行(節點退出集羣命令 docker swarm leave 可以在工作節點執行)。一個 Swarm 集羣可以有多個管理節點,但只有一個管理節點可以成爲 leader , leader 通過 raft 協議實現。
工作節點是任務執行節點,管理節點將服務 ( service ) 下發至工作節點執行。管理節點默認也作爲工作節點。你也可以通過配置讓服務只運行在管理節點。
來自 Docker 官網的這張圖片形象的展示了集羣中管理節點與工作節點的關係
集羣中管理節點與工作節點的關係

服務和任務

任務 ( Task )是 Swarm 中的最小的調度單位,目前來說就是一個單一的容器。
服務 ( Services ) 是指一組任務的集合,服務定義了任務的屬性。服務有兩種模式:

  • replicated services 按照一定規則在各個工作節點上運行指定個數的任務。
  • global services 每個工作節點上運行一個任務

容器、服務、任務的關係

創建 Swarm 集羣

先來創建一個包含一個管理節點和兩個工作節點的最小 Swarm 集羣。

初始化集羣

如果沒有安裝docker machine的話可以先進行安裝:

sudo curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine

docker-machine的安裝

首先創建一個 Docker 主機作爲管理節點

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