【Docker】Swarm初探:集群管理和容器調(diào)度
Docker新發(fā)布了swarm,machine,compose。
這里主要對(duì)swarm進(jìn)行說(shuō)明。Docker Swarm是一個(gè)Dockerized化的分布式應(yīng)用程序的本地集群,它是在 Machine所提供的功能的基礎(chǔ)上優(yōu)化主機(jī)資源的利用率和容錯(cuò)服務(wù)。具體來(lái)說(shuō),Docker Swarm支持用戶創(chuàng)建可運(yùn)行Docker Daemon的主機(jī)資源池,然后在資源池中運(yùn)行Docker容器。Docker Swarm可以管理工作負(fù)載并維護(hù)集群狀態(tài)。
之前,用戶需要對(duì)各個(gè)docker engine進(jìn)行操作(發(fā)送rest消息或者執(zhí)行docker命令)。
swarm則將一組docker enginge作為一個(gè)集群進(jìn)行管理,并提供過(guò)了lablel,schedule,filter的能力。
swarm保持了對(duì)docker原有API的兼容,我們可以像使用單一個(gè)docker engine一樣管理一個(gè)docker engine集群。
swarm還可以對(duì)集群中的節(jié)點(diǎn)健康狀況進(jìn)行檢查,HA發(fā)生故障節(jié)點(diǎn)的容器。
其中調(diào)度部分,允許用戶定制自己的調(diào)度策略。
集群管理:
- 創(chuàng)建集群:
 - $ swarm create
 - 添加一個(gè)節(jié)點(diǎn)到集群:
 - $ swarm join --token=<token> --addr=<node ip>
 - 列出集群中的節(jié)點(diǎn):
 - $ swarm list --token=<token>
 - 啟動(dòng)swarm:
 - $ swarm manage --token=<token> --addr=<swarm ip>
 
資源管理:
- cpu/memory:
 - $ docker run -m 1g -c 1
 - ports:
 - $ docker run -p 80:80
 
約束:
- 如何設(shè)置約束:
 - docker run -e "constraint:operationsystem=fedora"
 - docker run -e "constraint:storagedriver=aufs"
 - 通過(guò)約束過(guò)濾節(jié)點(diǎn):
 - docker -d "region=us-east"
 - docker run -e "constraint:region=us-east"
 - 未來(lái)還可以實(shí)現(xiàn)更復(fù)雜的,比如 反親和
 
支持容器重新調(diào)度:
- 類(lèi)似與--start的操作
 
容器調(diào)度過(guò)程:
- 類(lèi)似于openstgack:
 - 1. filter節(jié)點(diǎn)
 - 基于port,label,health
 - 2. weight節(jié)點(diǎn),選出***節(jié)點(diǎn)
 - 支持bin packing和random連中。
 
原文出自:http://blog.csdn.net/halcyonbaby/article/details/41812313















 
 
 










 
 
 
 