Docker九 | Swarm mode

目录

Swarm基本概念

节点

服务和任务

创建Swarm集群

创建管理节点 

增加工作节点

 查看集群

部署服务

新建服务 

 查看服务

服务伸缩

增加服务 

 减少服务

删除服务


Swarm基本概念

节点

节点分为管理节点(manager)和工作节点(worker)

管理节点

管理节点用于Swarm集群的管理,docker swarm命令大多只能在管理节点执行。一个swarm集群可以有多个管理节点,但只有一个管理节点可以成为leader

工作节点

工作节点是任务执行节点,管理节点将服务下发至工作节点执行,管理节点也默认为工作节点。节点退出集群命令 docker swarm leave 可以在工作节点执行

服务和任务

任务(Task) 是Swarm中的最小调度单位,目前来说是一个单一的容器

服务(Service)是指一组任务的集合,服务定义了任务的属性。服务有如下两种模式:

  • replicated services按照一定规则在各个工作节点上运行指定个数的任务
  • global services每个工作节点上运行一个任务

两种模式通过docker service create的--mode参数指定

创建Swarm集群

创建管理节点 

本次创建包含一个管理节点和两个工作节点的最小Swarm集群 

在192.168.117.131下执行docker swarm init命令的节点自动成为管理节点

[root@localhost ~]# docker swarm init --advertise-addr 192.168.117.131
Swarm initialized: current node (mn0xmlobseurosjh9ylsex0uq) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3x9heaku0p7o99e56rwng3opbvtgbrtfnpavdewbrpgu8joojn-cjv34fhoz2aaqeewe6ga0ceof 192.168.117.131:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

增加工作节点

在192.168.117.130和192.168.117.132下执行如下命令使之成为工作节点加入到集群中

docker swarm join --token SWMTKN-1-3x9heaku0p7o99e56rwng3opbvtgbrtfnpavdewbrpgu8joojn-cjv34fhoz2aaqeewe6ga0ceof 192.168.117.131:2377

成功会有如下反应

 查看集群

在管理节点执行如下命令

[root@localhost ~]# docker node ls
ID                            HOSTNAME                STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
mn0xmlobseurosjh9ylsex0uq *   localhost.localdomain   Ready     Active         Leader           24.0.7
pifvf9mr1ggvez9o92067gv60     localhost.localdomain   Ready     Active                          24.0.6
xdedgykahub32jyh09yeupbim     localhost.localdomain   Ready     Active                          24.0.6

部署服务

新建服务 

 在创建的Swarm集群中运行nginx服务

[root@localhost ~]# docker service create --replicas 3 -p 80:80 --name nginx nginx:1.13.7-alpine
hzb8ckdfjjrq7lmrgplhclblm
overall progress: 3 out of 3 tasks 
1/3: running   
2/3: running   
3/3: running   
verify: Service converged 

发现三种ip节点都可以访问nginx

Docker九 | Swarm mode_第1张图片

Docker九 | Swarm mode_第2张图片

Docker九 | Swarm mode_第3张图片

 查看服务

 查看当前Swarm集群运行的服务

[root@localhost ~]# docker service ls
ID             NAME      MODE         REPLICAS   IMAGE                 PORTS
hzb8ckdfjjrq   nginx     replicated   3/3        nginx:1.13.7-alpine   *:80->80/tcp

查看某个服务的详情

[root@localhost ~]# docker service ps nginx 
ID             NAME      IMAGE                 NODE                    DESIRED STATE   CURRENT STATE            ERROR     PORTS
s18jve694hof   nginx.1   nginx:1.13.7-alpine   localhost.localdomain   Running         Running 15 minutes ago             
kukdiwkwzbk0   nginx.2   nginx:1.13.7-alpine   localhost.localdomain   Running         Running 15 minutes ago             
dutte36gcuqq   nginx.3   nginx:1.13.7-alpine   localhost.localdomain   Running         Running 15 minutes ago  

查看某个服务的日志

[root@localhost ~]# docker service logs nginx

服务伸缩

增加服务 

[root@localhost ~]# docker service scale nginx=5
nginx scaled to 5
overall progress: 5 out of 5 tasks 
1/5: running   
2/5: running   
3/5: running   
4/5: running   
5/5: running   
verify: Service converged 
[root@localhost ~]# 

 减少服务

[root@localhost ~]# docker service scale nginx=2
nginx scaled to 2
overall progress: 2 out of 2 tasks 
1/2: running   
2/2: running   
verify: Service converged 
[root@localhost ~]# 

删除服务

[root@localhost ~]# docker service rm nginx
nginx

你可能感兴趣的:(Docker,docker)