當前位置:編程學習大全網 - 熱門推薦 - Docker Swarm

Docker Swarm

Swarm 是使用 SwarmKit 構建的 Docker 引擎內置(原生)的集群管理和編排工具。 Docker Swarm 是 Docker 官方三劍客項目之壹,提供 Docker 容器集群服務,是 Docker 官方對容器雲生態進行支持的核心方案。

使用它,用戶可以將多個 Docker 主機封裝為單個大型的虛擬 Docker 主機,快速打造壹套容器雲平臺。Swarm mode 內置 kv 存儲功能,提供了眾多的新特性,比如:具有容錯能力的去中心化設計、內置服務發現、負載均衡、路由網格、動態伸縮、滾動更新、安全傳輸等。使得 Docker 原生的 Swarm 集群具備與 Mesos 、 Kubernetes 競爭的實力。使用 Swarm 集群之前需要了解以下幾個概念。

運行 Docker 的主機可以主動初始化壹個 Swarm 集群或者加入壹個已存在的 Swarm 集群,這樣這個運行 Docker 的主機就成為壹個 Swarm 集群的節點 (node) 。節點分為 管理 (manager) 節點和工作 (worker) 節點 。

管理節點用於 Swarm 集群的管理, docker swarm 命令基本只能在管理節點執行(節點退出集群命令 docker swarm leave 可以在工作節點執行)。壹個 Swarm 集群可以有多個管理節點,但只有壹個管理節點可以成為 leader ,leader 通過 raft 協議實現。

工作節點是任務執行節點,管理節點將服務 ( service ) 下發至工作節點執行。管理節點默認也作為工作節點。妳也可以通過配置讓服務只運行在管理節點。來自 Docker 官網的這張圖片形象的展示了集群中管理節點與工作節點的關系。

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

兩種模式通過 docker service create 的 --mode 參數指定。來自 Docker 官網的這張圖片形象的展示了容器、任務、服務的關系。

我們這裏利用上壹節的 docker machine 來充當集群的主機,首先先創建壹個 manager 節點,然後在該節點上執行初始化集群命令:

執行 docker swarm init 命令的節點自動成為管理節點。

管理節點初始化完成後,然後同樣的用 docker-machine 創建工作節點,然後將其加入到管理節點之中去即可:

我們可以看到上面的提示信息: This node joined a swarm as a worker. ,表明節點已經加入到 swarm 集群之中了。

經過上邊的兩步,我們已經擁有了壹個最小的 Swarm 集群,包含壹個管理節點和兩個工作節點。

管理節點使用 docker node ls 查看集群:

使用 docker service logs 來查看某個服務的日誌。

使用 docker service rm 來從 Swarm 集群移除某個服務:

正如之前使用 docker-compose.yml 來壹次配置、啟動多個容器,在 Swarm 集群中也可以使用 compose 文件(docker-compose.yml)來配置、啟動多個服務。

上壹節中,我們使用 docker service create 壹次只能部署壹個服務,使用 docker-compose.yml 我們可以壹次啟動多個關聯的服務。

我們以在 Swarm 集群中部署 WordPress 為例進行說明:(docker-compose.yml)

其中 constraints: [node.role == manager] 是調度策略,文檔地址: /swarm/scheduler/filter/

在 Swarm 集群管理節點新建該文件,其中的 visualizer 服務提供壹個可視化頁面,我們可以從瀏覽器中很直觀的查看集群中各個服務的運行節點。

在 Swarm 集群中使用 docker-compose.yml 我們用 docker stack 命令,下面我們對該命令進行詳細講解。

部署服務使用 docker stack deploy ,其中 -c 參數指定 compose 文件名。

要移除服務,使用 docker stack down :

該命令不會移除服務所使用的 數據卷 ,如果妳想移除數據卷請使用 docker volume rm 。

  • 上一篇:趙麗穎的電視劇(趙麗穎迄今評分最高8部劇集)
  • 下一篇:敏感肌膚怎麽修復好 敏感皮膚需要註意哪些事項
  • copyright 2024編程學習大全網