首页 > 代码库 > [docker]swarm初探

[docker]swarm初探

Docker新发布了swarm,machine,compose。

这里主要对swarm进行说明。


之前,用户需要对各个docker engine进行操作(发送rest消息或者执行docker命令)。

swarm则将一组docker enginge作为一个集群进行管理,并提供过了lablel,schedule,filter的能力。

swarm保持了对docker原有API的兼容,我们可以像使用单一个docker engine一样管理一个docker engine集群。

swarm还可以对集群中的节点健康状况进行检查,HA发生故障节点的容器。

其中调度部分,允许用户定制自己的调度策略。


集群管理:

创建集群:
$ swarm create
添加一个节点到集群:
$ swarm join --token=<token> --addr=<node ip>
列出集群中的节点:
$ swarm list --token=<token>
启动swarm:
$ swarm manage --token=<token> --addr=<swarm ip>

资源管理:

cpu/memory:
$ docker run -m 1g -c 1 
ports:
$ docker run -p 80:80 

约束:

如何设置约束:
docker run -e "constraint:operationsystem=fedora"
docker run -e "constraint:storagedriver=aufs"

通过约束过滤节点:
docker -d "region=us-east"
docker run -e "constraint:region=us-east"

未来还可以实现更复杂的,比如 反亲和

支持容器重新调度:

类似与--start的操作

容器调度过程:

类似于openstgack:
1. filter节点
基于port,label,health
2. weight节点,选出最优节点
支持bin packing和random连中。



参考: 

https://speakerdeck.com/vieux/docker-swarm

[docker]swarm初探