再加两个个虚拟机vm以准备
接上文,原本有一个管理节点。现新增两个vm,分别加入原管理节点。一共三个node
步骤
将vm的hostname设为 swarmworker1
和swarmworker2
,hostname 很重要,以后会用
直接作为worker加入前面建立的节点,输入前面初始化节点时出现的命令
1 | docker swarm join --token SWMTKN-1-0mzmp1o6vufmqmpo8rvyrg2kzvlakj94gweg6drqunzhmvvmxr-6i80acmunj32z9xqw1jbbmeln 192.0.0.30:2377 |
Task
什么是task
大意就是服务的执行者,一个服务通过多个task来执行服务
swarm的task之于service相当于:
面向对像的object之于class;
docker的container之于images;
一个服务可有多个task,并且通过内部算法,部署在一个或多个node上
处理各类任务的,也是这些task
设置task个数的参数为replicas
,即复制品或副本…
那么我们来试一下
管理节点与工作节点的职能
现在,作为工作节点,我们来测试一下能不能管理创建服务
1 | docker service create --replicas 1 --name hello_world_in_worker1 alpine ping docker.com |
非管理节点不能干这些事,想要操作
要么在管理节点运行此命令
要么在管理节点升级此工作节点为管理节点
尝试升级,在当前的管理节点运行
1 | docker node promote swarmworker1 |
再去 swarmworker1查看节点
1 | docker node ls |
另外,这个task貌似不能直接删。可以用update命令来限制单个服务的历史task的个数。超了应该会删
1 | docker swarm update --task-history-limit 5 |
至此,本节点已升级成管理节点,试一下能不能创建服务
1 | ## 在本节点(swarmworker1)运行以下命令 |
小结
管理节点和工作节点都能运行task
工作节点不能操作,甚至不能查,只能用docker ps
等这种本地命令来查看容器的运行情况