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





























