资讯专栏INFORMATION COLUMN

Docker Swarm集群介绍

IT那活儿 / 1884人阅读
Docker Swarm集群介绍

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!! 

01

Docker Swarm 是Docker的集群管理工具。

它可以很轻松的将一个或多个Docker集中管理起来,其使用标准的Docker API接口作为其前端的访问入口,使得各种形式的Docker客户端均可以直接与Swarm通信,甚至Docker本身都可以很容易的与Swarm集成,这大大节省了节点迁移的成本;同时Swarm内置了对Docker网络插件的支持,用户可以很容易的部署跨主机的容器集群服务。 

02

Docker Swarm与Docker Compose
Docker Compose是一个用于定义和运行多容器 Docker 的应用程序工具,通的来说:有了 docker-compose 你可以把所有繁复的 docker 操作全都一条命令,自动化的完成。
而Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,加之Docker Swarm有一套便于管理集群的命令:显然 Docker Swarm 会更加适合多主机业务部署和管理。

Docker Swarm
总结一下如果Docker可以把杂乱的货物归类到集装箱中,那么Compose 则是用于编排这些集装箱,而 Swarm 就是多提供几条船合理运输,以保证集群的高可用。

03

Docker Swarm体系结构
一个swarm集群由管理节点(manager)和工作节点(work node)构成。
  • 管理节点:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。
  • 工作节点:主要负责运行相应的服务来执行任务(task)。

 

04

以副本服务(默认)为例,下面讲讲解副本服务模式的集群的工作流程
4.1 Swarm集群创建和节点的加入
docker swarm init:docker从单引擎模式为集群模式,并生成一个加入集群的凭证(下文用xxxxxxxx代表凭证)
通过使用我们凭证,我们可以使用下述两个执行为集群添加工作/管理节点:
  • docker swarm join-token worker: docker swarm join --token xxxxxxxx IP:PORT
  • docker swarm join-token manage: docker swarm join-token magager xxxxxxxx IP:PORT
4.2 服务创建
docker service create:我们通过docker service create这个命令去创建一个服务。
4.3 服务流程

1)swarm manager

  • API:服务直接由Swarm manager的API进行接收,接收命令并创建服务对象。
  • orchestrator:为服务创建一个任务。
  • allocater:为这个任务分配IP地址。
  • dispatcher:将任务分配到指定的节点。
  • scheduler:向指定节点下发指定命令。

2)worker node:接收manager任务后去运行任务

  • container:创建相应的容器。
  • worker:连接到调度程序以检查分配的任务。
  • executor:执行分配给工作节点的任务。

3)Service:为一个副本,可以理解为是一个任务,一个任务是一个容器

  • swarm manager:它将这个副本下发到三个可用的work节点。
  • container:实际的docker容器去运行应用。
  • task:work任务的名称为service名称后面跟.1(数字递增)。
Swarm工作流程

 

05


Docker Swarm服务

Docker服务模式分为全局服务和副本服务:

  • 全局服务时,每个节点只运行一个副本,每个节点任务唯一,没有预先指定的任务数量。
    每次向 swarm 添加节点时,集群的协调器都会创建一个任务,之后调度器将任务分配给新节点(如下图灰色);这里也体现出任务状态的原子性:即任务只能在一个节点上运行或者失败。
  • 副本模式时(默认)在service的副本模式情况下,manager会使swarm生成n个任务,并分配到所有的node上执行,n等于指定的副本数量(如下图黄色)。
    副本数量就是service的container的数量(即,service的scale),我们也可以理解为设置任务的数量来实现复制模式下的service。
五节点集群下的全局服务和五节点集群下的三个任务的副本服务

END



本文作者:靳沛达

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129457.html

相关文章

  • Docker Swarm介绍

    摘要:后续将其他节点加入集群都会用到这个值将节点加入集群查看节点信息相关命令创建服务更新服务删除服务减少服务实例增加服务实例查看所有服务查看服务的容器状态查看服务的详细信息。前言本篇是Docker第十三篇,Docker的使用至此就介绍完成,接下来继续Kubernetes。Docker系列文章:为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷Dockerfi...

    番茄西红柿 评论0 收藏2637
  • 生产环境中使用Docker Swarm的一些建议

    摘要:译者按实践中会发现,生产环境中使用单个节点是远远不够的,搭建集群势在必行。集群的网络通信服务发现,负载均衡以及容器间通信非常可靠。负载均衡也是由提供的。 译者按: 实践中会发现,生产环境中使用单个Docker节点是远远不够的,搭建Docker集群势在必行。然而,面对Kubernetes, Mesos以及Swarm等众多容器集群系统,我们该如何选择呢?它们之中,Swarm是Docker原...

    loonggg 评论0 收藏0
  • 基于 Docker 1.12 Swarm集群管理开发实践

    摘要:由于没有了中心化的负载均衡器,集群不会因某台机器异常而导致整个服务对外不可用,很好的避免了单点问题,同时也带了可扩展性。 Mesos/Marathon 折腾久了,我们一直希望有机会深入到 Swarm 内部一探究竟。 另外, Mesos 这一套东西虽然是久经企业级考验的, 但是安装、部署和使用相对复杂,上手有门槛。同时,在今年的 DockerCon 上,内置了Swarm 功能的 Dock...

    My_Oh_My 评论0 收藏0
  • Docker 实践(五):生产环境容器化

    摘要:不要用百度搜索中文资料,一定要看最新的英文资料。感谢感谢能容忍我无数次搞挂生产环境的老板。群蜗牛大神所建中文交流群,基本配置过程中遇到的问题都能得到解决。 前言 最近花了将近一个月的时间研究了 Docker 在生产环境中的使用,作为新手,期间走了无数的弯路,这里纪录一下,希望给别人带来微小的帮助。 前面几部分,介绍了在搭建集群之前需要做的一些工作,后面 一块结合实际应用,介绍如何架构...

    sydMobile 评论0 收藏0
  • Docker Swarm新版本发布对Kubernetes的意义

    摘要:即将发布版本,这次的发布直接跟进行竞争。这次的新版本都是在名为的编排系统的基础上建立起来的。从发布的这个新版本面临来自的竞争,被设计来帮助更新配置,缩放,操作主机上集群间的容器。 相比于普通的软件的开发速度,容器编排领域的发展速度相当惊人。基于容器的初创公司呈爆发式增长,这个领域的竞争也愈加激烈。这是一个好的开始,但是技术的选择却成为一个难题。在这样的情况下,我们目前关注了Docker...

    wow_worktile 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<