30天了解30种技术系列(14)----Docker集群管理利器Swarm
一般在公司中,Docker 服务器的数量> 1,所以如何让Docker 更合理的跑在很多服务器上,是一个需要解决的问题。为此Docker公司发布了官方的容器管理服务--Swarm。
Docker Swarm(蜂群) --- 发布于2014年12月的DockerCon,用以管理Docker集群,并将其抽象为一个虚拟整体暴露给用户。
Swarm 几乎为Go语言开发完成,目前相对来讲比较简单,但是因为是官方项目,所以建议各位要密切关注。
Swarm使用标准的Docker API接口作为其前端访问入口,意味着我们可以使用Docker任意语言的API调用。
Swarm 的结构如下:由Master Node来组成,需要注意的是Master与Node只负责运行容器,即如果进程死掉,那么容器运行没有影响。
Swarm的工作流程:
- Docker Client与 Master 通信
- Master 根据 集群Docker 容器运行的情况进行调度,然后分配相关容器起在那种机器上
- 然后发送指令给Docker Node 会启动相关容器,并进行监控
所以,这里面比较重要的就是调度算法,目前的调度算法为:Spread,binpack和Random。很明显,Random是随机的启动容器,这个只能玩玩。
Spread 优先考虑将Docker启动在容器运行比较少的服务器上,Binpack则相反,是尽可能把容器启动在一台服务器上。
Swarm 还有很多如何搭建等相关的知识,大家可以自己研究一下。再后续的文章里面,我们还会介绍其他Docker的组件。
大家如果对于哪个技术比较感兴趣,可以私信,我会有重点的在后续文章进行展开。
更多精彩请关注微信 : 图灵搜索,大家也可以使用中国第一个为程序员打造的搜索引擎:https://www.tulingss.com 进行查看。