2

What's the difference between Apache's Mesos and Google's Kubernetes

I read the accepted answers but I'm still confused what the differences are.

If Kubernetes is a cluster management then what does Mesos do (I understand what it does from watching bunch of videos but I suppose I'm more confused how those two work together)? From reading both Kubernetes and Marathon are "framework" sitting on top of Mesos?

What is Mesos responsible for and what are Kubernetes/Marathon responsible for and how do they work with each other?

EDIT: I think the better question is When would I want to use Kubernetes on top of Mesos vs just running Mesos alone?

Community
  • 1
  • 1
ealeon
  • 12,074
  • 24
  • 92
  • 173
  • how can this question be marked closed when the related question asks the same thing? – ealeon Jun 11 '16 at 17:26
  • Because the question is much too broad for StackOverflow, and is primarily opinion-based – Tobi Jun 13 '16 at 06:59
  • @Tobi how can it be opinion-based when im trying to understand which part does what? i m not asking which is better..... – ealeon Jun 13 '16 at 17:55

2 Answers2

3

Mesos is another abstraction layer. It simply abstracts underlying hardware so the software that want to run on the top of it could only define required resources without having to know any other information.

Kubernetes could do similar thing but without abstraction provided by Mesos you can't run other frameworks (e.g., Spark or Cassandra) on same machine without manually dividing it between those frameworks.

kubernetes marathon spark on the top of mesos

janisz
  • 6,292
  • 4
  • 37
  • 70
  • i m trying to understand when is the appropriate for three different cases: 1) use kubernetes alone, 2) use Apache mesos alone, 3) Use kubernetes + Mesos. I think I understand but not sure. why wouldnt anyone go with (3) all the time? – ealeon Jun 13 '16 at 17:58
  • i dont know how "cluster orchestration" bridges with "resource management" Does kubernetes spawn up bunch of Dockers and run Mesos on them to abstract resources or something? – ealeon Jun 13 '16 at 18:00
  • or you run mesos on a pool of machines and kubernetes tells where to run containers from resource info provided by mesos? – ealeon Jun 13 '16 at 18:04
  • I added diagram to make it clear. You run mesos on a pool of machines and kubernetes consumes offer preseted by Mesos. – janisz Jun 13 '16 at 18:46
1

Apache Mesos is a resource manager that shares resources (CPU shares, RAM, disk, ports) across a cluster of machines in a fair way. By sharing, I mean it offers these resources to so called framework schedulers (such as Marathon) and thereby has a clear separation of concerns in terms of resource management and scheduling decisions (which is implemented, depending on the job type, for example long-running or batch, by the framework scheduler). See also the Mesos architecture for further details.

Michael Hausenblas
  • 13,162
  • 4
  • 52
  • 66
  • 1
    so Kubernetes/Marathon is framework schedulers whereas Mesos is a resource manager? so what does cluster manager means? is it the same thing as framework scheduler? – ealeon Jun 11 '16 at 18:03
  • so Kubernetes/Marathon is a way to schedule things and Mesos tell the scheduler where to run so that it is load balance/what not? – ealeon Jun 11 '16 at 18:05
  • @ealon I've clearly defined what resource management means, read my answer again and take some time to actually think about it. Managing and sharing are in this context the same and again, yes, scheduling is separate from resource management. And all this has nothing to do with load balancing. I slowly begin to think you're trolling … – Michael Hausenblas Jun 11 '16 at 18:10
  • right but those cpu are across different nodes... so by managing those resources, you are actually load balancing because you wouldnt want to overload a particular node... – ealeon Jun 11 '16 at 18:20
  • you specifically said "in a fair way" that IS load balancing, no? – ealeon Jun 11 '16 at 18:22
  • yes, in this sense you're load balancing but I don't see how this has anything to do with your question. giving up now, have a nice day … – Michael Hausenblas Jun 11 '16 at 18:22
  • it has everything to do do with what im trying to understand lol. im trying to understand which part (mesos, marathon, kubernetes) are responsible for what and how they work with each other... i think i get it now tho. thanks! – ealeon Jun 11 '16 at 18:24