Docker Swarm mode

1.  集群模式基本概念docker

swarm mode(译:集群模式)服务器

standalone mode(译:单机模式)网络

以集群模式运行Docker负载均衡

1.1.  集群spa

Docker引擎内部已经集成了集群管理3d

一个集群由多个Docker主机组成,它们以集群模式运行。集群中有两种角色:manager和worker。一个给定的主机,它有多是manager,或者worker,也有可能同时兼具这两种角色。当你建立一个服务的时候,你会定义它们的状态(好比:副本数量、网络和存储资源、对外暴露的端口等等)。Docker负责维护这些状态。若是一个worker节点不可用了,那么Docker会将该节点上的任务转给其它节点。任务是一个运行的容器,它是集群服务的一部分,由manager管理,而非做为一个独立的容器。blog

相对于单机模式而言,集群模式最关键的优点在于你能够修改服务的配置(好比:networks或volumes等)而不须要手动重启服务。Docker将自动更新配置,中止已通过期的配置的服务任务,并建立与之匹配的新的服务任务。进程

当Docker以集群模式运行时,你仍然能够在集群的任意一台主机上以单机模式运行,只要它仍是集群服务。单机容器与集群服务最主要的区别在于只有集群的manager才能够管理集群,而单机的容器能够被任意守护进程启动。Docker守护进程能够以manager身份、worker身份、或两者兼具的身份参与到集群中。资源

(小结:文档

  1. 回忆一下,运行中的容器对外提供服务,也就是说服务的载体是容器
  2. 单机模式是一台主机上运行多个容器,每一个容器单独提供服务;集群模式是多台机器组成一个集群,多个容器一块儿提供同一个服务;
  3. 集群模式的好处是当你修改了服务的配置后无需手动重启服务
  4. 集群与单机最大的区别在于,只有集群中的manager才能管理集群中的一切(包括服务、容器都归它管,你没法再一个woker节点上操做容器)

1.2.  节点

节点是集群中的一个Docker实例,你能够认为它是一个Docker节点。你能够在单台物理机或者云服务上建立一个或多个节点。可是,在生产环境一般是一台物理机或云服务器时一个节点。

为了将你的应用部署到集群中,你须要提交一个服务定义给集群manger节点。manager节点分发任务(task)给worker节点。

manager节点还负责维护集群状态。manager节点选择一个leader来编排任务。

worker节点从manager节点那里接收任务并执行。默认状况下,manager节点上也运行着和worker节点上同样的服务。可是你也能够将它们配置为仅运行manager任务。每一个worker节点上都运行着一个agent,它们负责报告分配给该worker节点的任务的相关状况。worker节点向manager节点报告分配给它的任务的当前状态,以便于manager能够更好地分配任务。

1.3.  服务与任务

服务是要在manager节点或worker节点上执行的任务的定义。当你建立服务的时候,会指定运行哪一个镜像,以及在容器运行的时候执行哪些命令。

任务就是某个容器,以及要在容器中执行的命令

1.4.  负载均衡

2.  集群建立

建立集群

加入集群

部署服务

检查服务

动态扩容

删除服务

动态滚动更新服务

节点下线

3.  备忘单

4.  文档

https://docs.docker.com/engine/swarm/swarm-tutorial/scale-service/

https://docs.docker.com/engine/swarm/swarm-tutorial/rolling-update/

https://docs.docker.com/engine/swarm/ingress/

https://docs.docker.com/engine/reference/commandline/swarm_update/

相关文章
相关标签/搜索