Docker Swarm介绍
jopen
10年前
Docker Swarm是一个Dockerized化的分布式应用程序的本地集群,它是在 Machine所提供的功能的基础上优化主机资源的利用率和容错服务。具体来说,Docker Swarm支持用户创建可运行Docker Daemon的主机资源池,然后在资源池中运行Docker容器。Docker Swarm可以管理工作负载并维护集群状态。
Docker默认调度器会根据Docker容器的工作负载以及集群中主机的可用资源,使用 bin pack自动优化工作负载。 例如,调度一个需要1G内存的Redis容器:
% docker run -d -P -m 1g redis
为了支持特定的需求和基于策略的调度,Docker Swarm还提供了标准和自定义约束。比如为了保证好的IO性能,用户可能想在SSD上运行MySQL容器,这个时候可以定义如下约束:
% docker run -d -P -e constraint:storage=ssd mysql
除了资源优化,Docker Swarm可以保证应用的高可用性和容错性。Docker Swarm会不断的检查Docker Daemon所在主机的健康状态。当某个主机不可用时,Swarm就会将容器迁移到新的主机上。
Docker Swarm的亮点之一是它可以在应用的生命周期内扩展,也就是说当应用从一个主机扩展到2个、20个或者200个的时候,用户可以保证接口的一致性。
同样,和Machine一样,Swarm的架构是可插拔的,系统已经包含一个默认的调度器。其它的厂商可以实现自己的调度器。
可能上面的解释不太好理解,读者可以看完例子后再回来看上面那段话。或者可以看看作者( Andrea Luzzardi)在DockerCon上的 演讲稿。
来自:http://dockerone.com/article/28