Apache 的 Mesos 和谷歌的 Kubernetes 有什么区别 [英] What's the difference between Apache's Mesos and Google's Kubernetes

查看:33
本文介绍了Apache 的 Mesos 和谷歌的 Kubernetes 有什么区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Apache 的 Mesos 和 Google 的 Kubernetes 到底有什么区别?我知道两者都是服务器集群管理软件.任何人都可以详细说明主要区别在哪里 - 何时首选哪个框架?

What exactly is the difference between Apache's Mesos and Google's Kubernetes? I understand both are server cluster management software. Can anyone elaborate where the main differences are - when would which framework be preferred?

为什么要在顶部使用 Kubernetes中层?

Why would you want to use Kubernetes on top of Mesosphere?

推荐答案

Kubernetes 是一个开源项目,它将Google 风格"的集群管理功能引入虚拟机世界或金属"场景.它与现代操作系统环境(如 CoreOS 或 Red Hat Atomic)配合得非常好,这些环境提供了为您管理的轻量级计算节点".它是用 Golang 编写的,是轻量级的、模块化的、可移植的和可扩展的.我们(Kubernetes 团队)正在与许多不同的技术公司(包括策划 Mesos 开源项目的 Mesosphere)合作,将 Kubernetes 作为与计算集群交互的标准方式.这个想法是根据我们在 Google 的经验,重现我们看到的人们需要构建集群应用程序的模式.其中一些概念包括:

Kubernetes is an open source project that brings 'Google style' cluster management capabilities to the world of virtual machines, or 'on the metal' scenarios. It works very well with modern operating system environments (like CoreOS or Red Hat Atomic) that offer up lightweight computing 'nodes' that are managed for you. It is written in Golang and is lightweight, modular, portable and extensible. We (the Kubernetes team) are working with a number of different technology companies (including Mesosphere who curate the Mesos open source project) to establish Kubernetes as the standard way to interact with computing clusters. The idea is to reproduce the patterns that we see people needing to build cluster applications based on our experience at Google. Some of these concepts include:

  • pods — 一种将容器组合在一起的方法
  • 复制控制器——一种处理容器生命周期的方法
  • labels — 一种查找和查询容器的方法,以及
  • services — 一组执行通用功能的容器.
  • pods — a way to group containers together
  • replication controllers — a way to handle the lifecycle of containers
  • labels — a way to find and query containers, and
  • services — a set of containers performing a common function.

因此,单独使用 Kubernetes,您将拥有简单、易于启动和运行、可移植和可扩展的东西,将集群"作为名词添加到您以尽可能轻量级的方式管理的事物中.在集群上运行应用程序,无需担心单个机器.在这种情况下,集群就像虚拟机一样是一种灵活的资源.它是一个逻辑计算单元.打开它,使用它,调整它的大小,快速轻松地关闭它.

So with Kubernetes alone you will have something that is simple, easy to get up-and-running, portable and extensible that adds 'cluster' as a noun to the things that you manage in the lightest weight manner possible. Run an application on a cluster, and stop worrying about an individual machine. In this case, cluster is a flexible resource just like a VM. It is a logical computing unit. Turn it up, use it, resize it, turn it down quickly and easily.

对于 Mesos,在基本愿景方面存在相当多的重叠,但产品在其生命周期中处于完全不同的阶段,并且具有不同的甜蜜点.Mesos 是一个分布式系统内核,它将许多不同的机器拼接成一台逻辑计算机.它诞生于一个拥有大量物理资源来创建大型静态计算集群的世界.它的好处是许多现代可扩展数据处理应用程序在 Mesos(Hadoop、Kafka、Spark)上运行良好,这很好,因为您可以在同一个基本资源池上运行它们,以及新时代的容器打包应用程序.它比 Kubernetes 项目更重一些,但由于像 Mesosphere 这样的人的工作,它变得越来越容易管理.

With Mesos, there is a fair amount of overlap in terms of the basic vision, but the products are at quite different points in their lifecycle and have different sweet spots. Mesos is a distributed systems kernel that stitches together a lot of different machines into a logical computer. It was born for a world where you own a lot of physical resources to create a big static computing cluster. The great thing about it is that lots of modern scalable data processing application run well on Mesos (Hadoop, Kafka, Spark) and it is nice because you can run them all on the same basic resource pool, along with your new age container packaged apps. It is somewhat more heavy weight than the Kubernetes project, but is getting easier and easier to manage thanks to the work of folks like Mesosphere.

现在真正有趣的是,Mesos 目前正在调整以添加许多 Kubernetes 概念并支持 Kubernetes API.因此,如果您需要,它将成为为您的 Kubernetes 应用程序获取更多功能(高可用性主节点、更高级的调度语义、扩展到大量节点的能力)的门户,并且非常适合运行生产工作负载(Kubernetes仍处于 alpha 状态).

Now what gets really interesting is that Mesos is currently being adapted to add a lot of the Kubernetes concepts and to support the Kubernetes API. So it will be a gateway to getting more capabilities for your Kubernetes app (high availability master, more advanced scheduling semantics, ability to scale to a very large number of nodes) if you need them, and is well suited to run production workloads (Kubernetes is still in an alpha state).

当被问到时,我倾向于说:

When asked, I tend to say:

  1. 如果您是集群领域的新手,Kubernetes 是一个很好的起点;这是启动轮胎并开始试验面向集群的开发的最快、最简单和最轻的方法.它提供了非常高的可移植性,因为它得到了许多不同的提供商(Microsoft、IBM、Red Hat、CoreOs、MesoSphere、VMWare 等)的支持.

  1. Kubernetes is a great place to start if you are new to the clustering world; it is the quickest, easiest and lightest way to kick the tires and start experimenting with cluster oriented development. It offers a very high level of portability since it is being supported by a lot of different providers (Microsoft, IBM, Red Hat, CoreOs, MesoSphere, VMWare, etc).

如果您有现有的工作负载(Hadoop、Spark、Kafka 等),Mesos 为您提供了一个框架,让您可以将这些工作负载相互交错,并混合一些新的东西,包括 Kubernetes 应用程序.

If you have existing workloads (Hadoop, Spark, Kafka, etc), Mesos gives you a framework that let's you interleave those workloads with each other, and mix in a some of the new stuff including Kubernetes apps.

如果您需要社区尚未在 Kubernetes 框架中实现的功能,Mesos 可为您提供一个逃生阀.

Mesos gives you an escape valve if you need capabilities that are not yet implemented by the community in the Kubernetes framework.

这篇关于Apache 的 Mesos 和谷歌的 Kubernetes 有什么区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆