Swarmkit是Docker
公司新开源的一个项目,它用来创建和管理cluster
。默认情况下使用Docker container
来运行任务,但不限于此。
Cluster
中的node
分成两种:manager
和worker
。Manager node
负责接收用户指令和管理cluster
;worker node
则是通过executor
执行task
(默认executor
即为Docker container
)。Task
可以组织成Service
。此外,一组manager
通过Raft
协议形成一个组,并会选出一个leader
。只有leader
处理所有的请求,其它的成员只是把请求传给leader
。
Swarmkit
提供了两个可执行程序:swarmd
和swarmctl
。swarmd
用来部署在cluster
中的每一个node
上,彼此间互相通信,组成cluster
;而swarmctl
则用来向整个cluster
“发号施令”。 下图可以更清楚地描述Swarmkit
的内部机制(图片出处:https://pbs.twimg.com/media/Ckb8EMLVAAQrxYH.jpg):
参考资料:
docker-swarmkit;