Docker容器技术:容器编排-Swarm mode介绍

156 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情

这么好的容器技术,如果只用于本地开发测试的是不是浪费了,能不能用于线上环境呢?之前我们用的都是本机的虚拟环境,且操作的最终都是一台机器,但是实际情况如果一个复杂应用,部署一台机器没办法满足需求,包含的容器可能很多。

所以可能需要在集群中部署很多容器,只有很好的部署管理好多个容器,才能够把容器技术放到线上真正用到实际应用里,这里就需要容器编排技术了。当然这里我们会介绍Docker的一种容器编排技术Swarm,这个目前不需要额外安装,已经内置Docker中了,初学者可以通过这个工具来接触容器编排

如果像之前一样的方法来到处使用容器,那么会有如下的一些麻烦:

  • 怎么去管理这么多容器?
  • 怎么能方便的横向扩展?
  • 如果容器down了,怎么能够自动恢复?
  • 如何去更新容器但是又不会影响业务?
  • 如何去监控和追踪这些容器?
  • 怎么去调度容器?

接着我们来看一下即将要介绍的Swarm的集群架构:

Manager节点:集群的大脑,考虑线上环境,需要有多个Manager,以防宕机。还需要同步数据,所以需要一个分布式数据库,保证数据对称同步~

Worker节点:干活的节点,大部分容器都部署允许在Worker上面,Worker内部通过Gossip网络来进行数据同步

services:根Docker Compose意思一样,一个service就代表了一个容器,但是这里是Replicas模式,会做横向扩展,实际上部署的时候会产生3个容器,通过调度系统来调度到不同节点上面。service在部署时候不知道最后会应用在哪个节点,借助调度系统,最终会决定使用哪个节点

最后在补充一下docker-swarm与docker-compose的区别吧:

这两者其实都是Docker官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。