简介
swarm是Docker自带的集群解决方案。
支持docker swarm的项目叫swarmkit
核心概念
node
集群要考虑的问题,是把多个container部署到多个机器上。一台台独立的机器,叫做node,也叫host
manager node
集群需要一个管理端,用户通过管理段操作集群
manager node运行swarm的管理端
worker node
workeer node是除manager node之外的节点
service
Service是用户提交给swarm的任务
比如用户想运行一个redis集群,就在swarm中创建一个service,告知swarm至少以下方面:
- 本集群的image镜像是什么
- 本集群对外端口是什么
- 本集群运行多少个redis实例
当然还可以配置更详细的,比如资源,权限和策略等
task
一个运行着的container就叫task。
Swarm收到用户提交的service后,就会在node上安排container运行,以满足service的要求。manager node要求worker node运行一个container,就叫发送一个task给worker node
可见,task是swarm内部概念,一个task对应一个container
如图,该service希望运行3个nginx, 因此swarm manager对应的运行了三个task,即启动了三个nginx container:
scheduling
swarm管理container的生存状态,负责启停container的整套逻辑,叫做scheduling。
因此,整体swarm流程为:
- 1. 用户提交service。
- 2. swarm根据service开始scheduling。
- 3. scheduling过程中,会安排worker node执行task。
发表回复