【Docker】Swarm初探:集群管理和容器调度

【Docker】Swarm初探:集群管理和容器调度

Docker新发布了swarm,machine,compose。

这里主要对swarm进行说明。Docker Swarm是一个Dockerized化的分布式应用程序的本地集群,它是在 Machine所提供的功能的基础上优化主机资源的利用率和容错服务。具体来说,Docker Swarm支持用户创建可运行Docker Daemon的主机资源池,然后在资源池中运行Docker容器。Docker 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的操作 

容器调度过程:

相关推荐