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

[Editor's Note] This article comes from StackOverFlow on a question, mainly to discuss the difference between Mesos and Kubernetes, I believe many of us have the same question. Kubernetes developer Craig answered the question, and masi also made an overview, not necessarily for the reader's reference. Kubernetes are primarily targeted at container clusters, and Mesos is suitable for any framework and application, so Kubernetes can run on Mesos.

Kubernetes is an open source project that introduces Google's cluster management tools into virtual machines and bare metal scenes. It runs perfectly in modern operating system environments such as CoreOS and Red Hat Atomic, and provides lightweight computing nodes that can be controlled by you. Kubernetes is developed using Golang, with lightweight, modular, portable and scalable features. We (Kubernetes development team) are working with a number of different technology companies, including the MesosSphere that maintains the Mesos project, to upgrade Kubernetes to a standard way to interact with computing clusters. Kubernetes reworked Google's experience in building cluster applications. These concepts include the following:

  • Pods: a method of organizing containers together;
  • Replication Controllers: A method that controls the lifecycle of a container: The Replication Controller ensures that the specified number of pod replicas are running at any time in the Kubernetes cluster;
  • Labels: a way to find and query containers;
  • Services: a container group for implementing a specific function;

So, as long as you use Kubernetes you can simply and quickly start, transplant and expand the cluster. In this case, the cluster is like a virtual machine like a flexible resource, it is a logical unit of operation. Open it, use it, adjust its size, and then close it, that is so fast that it is so simple.

Mesos and Kubernetes are almost the same, but they have different advantages in different life cycles. Mesos is a distributed system kernel that integrates different machines on a single logical computer. When you have a lot of physical resources and want to build a huge static calculation of the cluster, Mesos came in handy. There are a lot of modern scalable data processing applications that can run on Mesos, including Hadoop, Kafka, Spark, etc., and you can use container technology to run all data processing applications in a basic resource pool. In some way, Mesos is a more heavyweight project than Kubernetes, but thanks to those contributors like Mesosphere, Mesos is becoming easier and easier to manage.

Interestingly, Mesos is accepting the idea of ​​Kubernetes and has begun to support the Kubernetes API. So if you need them, it will be a convenient way for your Kubernetes application to get more capacity (such as the high availability of the trunk, the more advanced scheduling commands, the ability to manage a large number of nodes), and the ability to Very good for the product-level work environment (after all, Kubernetes is still an initial version).

When asked about the difference, I would answer:

  1. If you are a novice in a cluster world, that Kubernetes is a great start. It can solve your problem with the fastest, easiest, most lightweight way and help you develop for cluster. It provides a high level of portable solutions, because many manufacturers have begun to support Kubernetes, such as Microsoft, IBM, Red Hat, CoreOS, MesoSphere, VMWare and so on.
  2. If you have existing work tasks (Hadoop, Spark, Kafka, etc.), that Mesos can provide you with a framework that will work with different tasks, and then you can add something new, such as Kubernetes.
  3. If you want to use the function Kuberntes not yet implemented, that Mesos is a nice alternative, after all it is already ripe.

Original links: Whats the difference between Apaches Mesos and Googles Kubernetes (translation: Liu Kaining proofreading: Li Yingjie)

(Java, PHP, Go, there are a number of small business project experience (website, WeChat platform, JavaSE practical), the Department of Information Management and Information Systems, undergraduate third grade reading love the Internet, love software development technology to start programming, familiar with Java SE, PHP, Go, Software) and software company internship experience (Shanghai hot Pu Technology, 201407-201409)
Personal website: Liu Kai Ning
Technology blog: C2P technology blog
QQ: 929025296
I am glad to communicate with you!

Heads up! This alert needs your attention, but it's not super important.