What is the difference between Apache Mesos and Google Kubernetes?

If you are just getting started, then Kubernetes will be a good starting point; it's quick, easy to use, lightweight way to handle cluster-oriented development integration and experience. It provides a very far-sighted portability, enabling it to support multiple providers (Microsoft, IBM, Red Hat, CoreOS, Mesosphere, Kismatic, VMware, etc.).

Kubernetes is an open source project developed by the Google Cloud Platform group that brings container cluster management capabilities to virtual machines around the world, including bare metal hardware. It works well with contemporary operating systems such as Ubuntu, RedHat, Project Atomic / CentOS, or CoreOS. These systems provide lightweight computing nodes to be hosted by you. Kubernetes is written in Golang language, it is lightweight, modular, portable and scalable. Google's Kubernetes development team is working with a number of different background technology companies to develop a standard solution based on Kubernetes as a standard computing cluster. The idea is to draw on Google's experience in building distributed applications to help developers who need to build distributed applications. The core concepts include the following basic concepts:

  • Pods — is a container that joins together and shares a file volume. They are the smallest deployment units that are created, dispatched, and managed by Kubernetes. Pods can be created directly, but it is recommended that you use the replication controller, even if you create a pod.
  • Replication controllers – manage the lifecycle of Pods. They ensure that the specified number of Pods will always run, by creating and killing Pods can guarantee this effect.
  • Labels — It is used to manage and select groups based on key-value pairs.
  • Services – Provides a collection of Pods with independent, reliable names and addresses. It's like a basic version of the load balancer.

So, along with Kubernetes, you will get some simple, easy-to-use get-ready, consistent and extensible. When adding the term "distributed" to what you manage, this thing will be a really lightweight way. Run the application in a cluster without worrying about a separate host. In this example, a cluster is a flexible resource like a virtual machine. It is a logical unit of calculation, you can start it, use it, adjust the cluster size, close it, both fast and easy.

For Mesos, there are many overlapping definitions of basic points of view, but the product does have some unwanted points in their lifecycle, and there is a bright spot. Mesos is a distributed system kernel that weaves different types of hosts together when a logical computing computer is put together. Its appearance is based on the fact that you have a large number of physical machine resources that allow you to use to create large static compute clusters. The very important thing is that it allows many modern scalable computing applications to run well on Mesos clusters (Hadoop, Kafka and Spark). Its great place is that you can run these computing applications at the same time in the same basic resource environment, including applications that run the container type of the micro service era at the same time. In some places it is really heavier than Kubernetes, but it's getting easier to use, thanks to Mesosphere's team contribution.

What makes this happier now is that Mesos has begun to adopt and add more Kubernetes concepts to support the Kubernetes API. If you need Mesos, this will be a bridge connecting Mesos to get your Kubernetes program to be more compatible with features (such as: highly reliable master, more scheduling concepts, and the ability to manage a large number of nodes) The And it has been well adapted to the production environment (Kubernetes is still a preview version of the test phase, V1 scheduling will be released in 1 to 2 months).

If you already have a special environment (Spark, Hadoop, Kafka, etc.), Mesos will give you a framework that allows you to insert these systems into your cluster and can mix up some Kubernetes programs. Mesos provides you with a safety valve that can be supported if you need these computing capabilities but the community has not yet provided it.

If you come from the virtual machine world, or the traditional server architecture, Kubernetes will be a good election. Mesos need a custom "Framework" to support, for example, running MariaDB, but Kubernetes' containerized applications can run directly without any modification. This is the best way to reach a scalable container cluster.


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