Swarm概念介绍
从主机层面来看,Docker Swarm 管理的是 Docker Host 集群。有一个重要的概念 - 集群化(Clustring)
集群化的概念
服务器集群有一组网络上互相连接的服务器组成,他们一起协同工作。一个集群和一堆服务器最显著的区别在于:
集群能够将单个系统那样工作,同时提供高可用、负载均衡 和 并行处理。
如果在部署应用和服务时选择的是多个独立的服务器而非集群,资源的整体利用率则很难达到最优,因为无法提前知道如何分布这些应用才能达到资源利用的最大化。而且,应用使用资源的趋势是有波动的,早上某些服务器可能需要大量的内存,而下午使用量就降下来了。提前指定应用应该运行在哪个服务器会丧失业务的弹性,当某个服务器宕机了,我们不得不手工将受影响的应用迁移到其他服务器上。
使用集群部署应用时,只考虑需要多少内存和CPU,而不是考虑会使用哪台的CPU和内存。我们不应该关心应用会被部署在哪里,我们关心的是运行这个应用需要哪些资源,然后将它部署到集群,集群管理程序(比如Docker Swarm)会帮你搞定这些细节。
集群整理容量的调整是通过往集群中添加和删除主机节点实现的。但不管做怎么样的操作,集群始终是一个整体。
Docker Swarm Mode
Docker v.112是一个非常重要的版本,Docker重新实现了集群的编排方式。在此之前,提供集群功能的Docker Swarm 是一个单独的软件,而且依赖外部数据库(比如 Consul、etcd 或者 Zookeeper)
从 v1.12 开始,Docker Swarm 的功能已经完全与 Docker Engine 集成,要管理集群