这篇文章给大家介绍docker中Swarm mode是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了港口免费建站欢迎大家使用!
一般情况下,我们都在一台机器下部署容器,但实际情况下,应用如果只在一台机器上无法满足我们的需求,包含的容器比较多。因此在生产环境下部署我们的应用就会涉及到非常多的容器,这样就会给我们带来一系列的问题:
怎么去管理这么多的容器?
怎么能方便的横向扩展?
如果容器down了,怎么能自动恢复?
如何去更新容器而不影响业务?
如何去监控追踪这些容器?
怎么去调度容器的创建?
保护隐私数据?
这样我们就需要容器编排技术,Swarm Mode应运而生。
Swarm 并不是唯一一个可以做容器编排的工具,只不过Swarm是内置于docker的一个工具。因此我们使用Swarm时不需要安装任何东西,Swarm已经内置到我们系统里面了,只不过我们没有运行在Swarm 模式下,我们一般运行在单机模式下。因此swarm就是初学者接触容器编排的第一个工具。
Swarm 架构
Swarm是一种集群架构,既然是集群,那么一定有节点,有节点那么就有角色。在Swarm中节点node一共有两种角色,第一种角色叫Manager,第二种角色叫worker。
Manager节点好比集群的大脑,在生产环境中,为了避免单点故障,“大脑”至少要有两个,因此会有状态同步,即在一个Manager产生的数据如何同步到另外的Manager节点上,这里就涉及到一个内置的分布式存储数据库,数据通过raft协议去做同步。raft协议能够确保Manager节点的信息是对称的,同步的,可以避免脑裂的情况。
Worker节点就是真正干活的节点,真正的容器部署在cluster中都会运行在Work节点中,当然Manager节点也可以运行,但是一般都运行在Worker节点中,因为Worker节点比较多。Worker节点之间也有数据需要同步,是通过Gossip网络来做信息同步。
Swarm中一个非常重要的概念是Service和Replicas。
Service在上一节中介绍docker compose的时候有介绍过,在Swarm中的service与docker compose下的service的意思基本一样。一个service就代表了一个容器。
在Replicas模式下,即我们想做横向扩展,再部署的过程中,一个replicas就是一个容器。
如上图所示,我们想部署一个Nginx的service,想要给他做3个扩展,实际上部署的过程中会产生三个容器,这三个容器会通过调度系统调度到不同的node上面去。也就是说我们通过Swarm Manager节点去部署一个service,其实是不知道这个service最终会运行在哪个节点上,这回根据Swarm的schedule根据一定的调度算法去算的,例如算法会根据节点的负载来选择。
上面这张图就是swarm算法调度的一个过程。在swarm manager上做一些决策,来决定把哪个service部署在哪台node上,然后在去执行实际的一个操作就可以了。
关于docker中Swarm mode是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
文章标题:docker中Swarmmode是什么
链接URL:http://lswzjz.com/article/pcegje.html