剖析Docker Swarm和Mesos:是什么?如何结合?有什么优势?

简介: 本文讲的是剖析Docker Swarm和Mesos:是什么?如何结合?有什么优势?,【编者的话】本文来自Mesosphere,从生产环境的需求出发,简要介绍了Docker Swarm的诞生背景,以及其与Mesos、 Mesosphere DCOS之间的关系,同时,也阐述了Mesosphere管理大规模容器的方式以及它和Swarm是如何结合的。
本文讲的是剖析Docker Swarm和Mesos:是什么?如何结合?有什么优势? 【编者的话】本文来自Mesosphere,从生产环境的需求出发,简要介绍了Docker Swarm的诞生背景,以及其与Mesos、 Mesosphere DCOS之间的关系,同时,也阐述了Mesosphere管理大规模容器的方式以及它和Swarm是如何结合的。

在去年(2014)12月份的欧洲DockerCon上,Docker首席技术官Solomon Hykes说Mesos是生产环境下运行大规模可扩展容器集群的 黄金标准 ,这对于每个使用Apache Mesos和Mesosphere Datacenter Operating System(DCOS,数据中心操作系统)的人来说应该感到万分的荣幸。

这也正是容器成熟的标志:现在Docker已经完成了,甚至我们都开始讨论大规模的容器应用。2006年, 谷歌第一次对外介绍容器化组件cgroups和namespaces,可以说这是 现代Linux容器 的开端。然而Docker的真正工作是简化容器的创建,并让这些容器可以作为开发人员和系统管理员标准化、配置、交付应用的最好方案。

今天宣布Docker Swarm的意义何在?

把一个容器放到生产环境中听起来很简单,然而却有很多事情要做。

Docker的确可以让你轻松的打包一个应用,但是你还想让应用在其它方面也变得简单,比如在运维方面。你还想要很容易就把应用扔到云里,比如Amazon、自己的硬件环境、私有云或是公有云,并且它可以按照需求运行很多次,永远不会宕机,也不会麻烦你。如果应用有了新版本,Docker可以让你以优雅的方式来升级。这才是开发人员所关心的(他们关心的是把代码推送到生产环境,然后应用就一直运行,既不需要带一个BP机,也不会有IT人员的打扰)。这些事情看起来简单却不容易做到。

Docker Swarm就是Docker提供的一个解决方案,它可以无缝管理容器集群,所以今天发布的Swarm就是真正的为了让企业用户能够部署和管理大规模容器。

我们认为Docker Swarm发布最酷的部分应该是“batteries included but swappable(可插拔式的架构)”。简单的说,这个意思就是当你需要规模化生产的时候,你可以开始使用Docker Swarm,并“换入(swap in)”Mesosphere。我们认为他们做了一个伟大的社区决定, 就是鼓励用户在容器集群调度和协调上面可以自我选择和创新,而不是只规定一种方式。

Mesosphere管理大规模容器的方法

Mesos和Mesosphere DCOS是专门设计用来管理大规模容器的。这些高性能的系统在一些世界上最大的数据中心的生产环境中已经身经百战很多年了,例如Twitter, 几乎完全 是在Mesos上面运行的。

在成百上千台机器上协调和调度大规模的容器,与在单台机器或者100台机器上运行容器是截然不同的。当你按比例增加已有的100台机器,可能的故障面和性能瓶颈就会以指数级复杂度增长。

在数据中心中,机器故障随时可能出现,磁盘故障随时可能出现,网络也随时可能出现.......管理故障以及把故障展现出来就需要像Mesos和Mesosphere DCOS这样高度专业的系统。从Mesoshere的立场来说,你是想把计算机的集群看成是一个黑盒,然后要把你的应用扔进去(例如使用Docker Swarm)并运行,如果一些不好的情况出现了,你希望系统可以自己去修复它。

Mesos和Mesosphere DCOS是专门设计在数据中心中管理容器, 并解决企业在运行生产级别的应用过程中所面临的挑战。例如,Mesoshpere的技术是:
  • 高可用性,生产环境中关键工作常常需要五个或五个9以上的可靠性,以及高度的自动化。为要达到这个要求,Mesos已经做了多年攻坚。
  • 容错,当一些不好事情发生时,一个服务器,一个机架,或者网络出故障了, Mesos有能力自动地辨别并处理这些故障。
  • 自我修复,当一些东西在Mesos或者Mesosphere
    DCOS集群中出现故障时,例如当一个机架坏了或者一些服务挂掉了,这些服务是可以自动被重启的,并且每一个都是可以自动重连接的,就像海星在没有人工干预的情况下,自己长出了另外一个手臂。

通过整合Docker Swarm和Mesophere,你可以使用Docker工作流(Docker workflow)来创建和打包你的应用,然后借助Mesosphere DCOS和Mesos协调和调度容器,你完全可以运行你的应用,并且它们是可扩展且高可用的。

数据中心规模的多组织用户管理

在传统系统中,在相同的数据中心运行多种类型的工作,需要运维团队为每种工作定制机器的集群。所以,比如说你想运行Docker Swarm和Spark,你需要为Docker Swarm创建一个集群,再为Spark创建一个集群。这就在数据中心中创建了很多仓库(silos),每个类型的工作都需要分开的集群管理,也不容易实现数据和资源的共享。

Mesos和Mesosphere DCOS是唯一有能力让Docker Swarm和其它应用给你运行在同一个集群上。包括大数据应用,例如Spark、Storm、Kafka以及Hadoop。这也提高了资源的使用,同时减少了消耗和复杂性。

使用了Mesosphere DCOS之后,你可以通过一个简单的命令把Docker Swarm安装为一个数据中心服务,并且Docker Swarm和其它数据中心服务一样运行在相同的集群上,例如大数据服务。大量的数据中心服务还可以同时运行,Mesos也会弹性地与Dokcer Swarm共享资源。

Mesos上的Docker Swarm是如何工作的

Mesos上的Docker Swarm直接使用Mesos的API,这就意味着它可以完全兼容Mesosphere DCOS,这也使得Docker Swarm同Marathon、 Cronos、Spark、Storm、Hadoop以及Cassandra一样成为Mesos和Mesosphere生态系统里面的一等公民。

使用Mesos API集成Docker Swarm的好处是在保持对Docker Swarm的完全兼容的情况下,使用Mesos特性过程中可以提供最大的灵活性。在Mesos上的Docker Swarm可以使用最新的Docker Swarm特性,同时可以利用Mesos和Mesosphere DCOS的特性以及可扩展的架构。

原文链接:Docker Containers at Scale (Our Take on Docker Swarm)(翻译:左伟 校对:郭蕾)

===========================
译者介绍
左伟,就职于IBM,软件工程师,现从事于DevOps相关的研究,实现和推广。

原文发布时间为:2015-02-28
本文作者:左伟 
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:剖析Docker Swarm和Mesos:是什么?如何结合?有什么优势?
目录
相关文章
|
3月前
|
Prometheus 监控 Cloud Native
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
123 8
|
3月前
|
Prometheus 监控 Cloud Native
如何监控Docker Swarm集群的性能?
如何监控Docker Swarm集群的性能?
201 8
|
3月前
|
调度 开发者 Docker
Docker Swarm
Docker Swarm 为容器化应用的部署和管理提供了一种高效、可靠的方式,使开发者能够更轻松地构建和运行分布式应用。随着容器技术的不断发展,Docker Swarm 在企业级应用中的应用也将越来越广泛。
88 8
|
3月前
|
监控 Docker 容器
Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项
本文深入探讨了Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项,旨在帮助用户高效管理集群资源,适应业务变化,确保服务稳定性和资源优化。
100 6
|
4月前
|
Kubernetes 负载均衡 调度
Docker Swarm 核心概念及详细使用
Docker Swarm 是 Docker 的原生集群管理工具,用于将多个 Docker 主机整合成一个虚拟主机,提供集群管理和调度功能。其核心特点包括集群管理、容错与高可用性、负载均衡、声明式服务模型、服务发现和安全性。本文档详细介绍了 Docker Swarm 的安装配置、服务部署、节点管理、网络配置及故障模拟等关键操作,适用于中小型项目或对 Kubernetes 复杂性有所顾虑的用户。
284 6
|
4月前
|
应用服务中间件 nginx Docker
Docker Swarm、Docker Stack和Portainer的使用
Docker Swarm、Docker Stack 和 Portainer 各有其独特的功能和优势。Docker Swarm 适用于分布式服务的管理和编排,Docker Stack 便于多容器应用的定义和部署,而 Portainer 提供了直观的 UI,简化了 Docker 环境的管理。结合使用这些工具,可以大大提高容器化应用的部署和管理效率。希望本文对您理解和应用这些工具有所帮助。
258 5
|
5月前
|
负载均衡 应用服务中间件 网络安全
docker swarm添加更多的服务
【10月更文挑战第16天】
63 6
|
4月前
|
存储 运维 数据中心
使用Docker容器化应用程序的优势与挑战
使用Docker容器化应用程序的优势与挑战
63 0
|
4月前
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
|
4月前
|
调度 Docker 容器
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。