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
时间: 2024-12-12 07:32:30