Docker進階-資源管理Swarm+Portainer


Docker Swarm資源管理

Docker Swarm是Docker官方三劍客項目之一,提供Docker容器集群服務,是Docker官方對容器雲生態進行支持的核心方案。

使用它,用戶可以將多個Docker主機封裝為單個大型的虛擬Docker主機,快速打造一套容器雲平台。

注意:Docker1.12.0之后版本,Swarm模塊已經內嵌入Docker引擎,成為Docker子命令docker swarm,絕大多用戶已經開始使用Swarm模塊,Docker引擎API已經刪除Docker Swarm。

基本概念

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

節點

運行Docker的主機可以主動初始化一個Swarm集群或者加入一個已存在的Swarm集群,這樣運行Docker的主機就成為一個Swarm集群的節點(node)。

節點分為管理(manager)節點和工作(worker)節點。

  • 管理節點用於Swarm集群的管理,docker swarm集合基本只能在管理節點執行。
  • 工作節點是任務執行節點,管理節點將服務(service)下發至工作節點執行。

集群中管理節點與工作節點的關系

服務和任務

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

服務有兩種模式:

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

兩個模式通過docker service create的--mode參數指定

容器、任務、服務的關系

創建Swarm集群

了解Swarm集群由管理節點和工作節點組成后,我們創建一個包含一個管理節點和兩個工作節點的最小Swarm集群。

初始化集群

使用docker swarm init在本地初始化一個Swarm集群。

docker swarm init --advertise-addr 192.168.1.1

如果你的Docker主機有多個網段,擁有多個IP,必須使用--advertise-addr指定IP。執行docker swarm init命令的節點自動成為管理節點。

注意:使用docker swarm init

增加工作節點

在另外兩台服務器上執行上一步創建管理節點時候的輸出的加入swarm集群的全集

docker swarm join \
--token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx \ 
192.168.1.1:2377

查看集群

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

docker node ls

部署服務

使用docker service命令來管理Swarm集群中的服務,該命令只能在管理節點運行。

新建服務

在創建好的Swarm集群中運行nginx服務

docker service create --replicas 3 -p 80:80 --name nginx nginx:latest

現在我們使用瀏覽器,輸入任意節點IP,即可看到nginx默認頁面。

查看服務

查看當前Swarm集群運行的服務

docker service ls

查看某個服務的詳情

docker service ps nginx

查看某個服務的日志

docker service logs nginx

刪除服務

從Swarm集群中移除某個服務

docker service rm nginx

資源管理

前面利用Docker Swarm快速搭建一個最小集群,也可以在集群上部署服務,但是會發現swarm中並沒有提供統一入口查看節點的資源使用情況。這時我們可以用圖形化管理工具Portainer幫我們管理swarm集群。

Portainer是Docker的圖形化管理工具,提供狀態顯示面板、應用模板快速部署、容器鏡像網絡數據卷的基本操作(包括上傳下載鏡像、創建容器等操作)、事件日志顯示、容器控制台操作、Swarm集群和服務等集中管理和操作、登陸用戶管理和控制等功能。功能十分全面,基本能滿足小型單位對容器管理的全部需求。

Portainer集群運行

下載Portainer鏡像

#查詢當前有哪些Portainer鏡像
docker search portainer
docker pull portainer/portainer

安裝Portainer(管理節點)

docker run  -d -p 9000:9000 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer

Portainer配置

設置管理員帳號密碼

Portainer界面內容


免責聲明!

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



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