Mesos and Kubernetes
http://dockone.io/article/956 I firmly believe that their use will grow faster in the next year, so it is time to review the summary and prepare for 2016 years. I would like to discuss the current situation of Mesos and kubernetes and enumerate the strengths and weaknesses that will allow you to understand the concept of cluster manager.
Mesos and Kubernetes
Before I start, I'd like to take the time to roughly compare Mesos and kubernetes. This comparison is not easy, because the work mesos do and kubernetes is not exactly the same. To understand the reasons for this, you need a quick and deep look at how Mesos and kubernetes work.
Mesos is a cluster manager based on two-stage scheduling. In a highly simplified sense, mesos is used to manage cluster resources and provide them with a "framework" of high-level access to these resources to initiate tasks.
Instead, Kubernetes is a cluster manager designed based on the idea behind Borg. Google's cluster manager has no concept of two-phase scheduling.
When I introduce Mesos, I usually introduce the entire Mesos "stack" because I find it very inaccurate to just introduce Mesos: As mentioned earlier, based on its two-phase scheduling feature, users need to be able to use Mesos's "Mesos framework" (for example, Marathon,aurora, Singularity) to work like the Kubernetes scheduler. The popular (and paid) scenario for using Mesos to manage clusters with enterprise support is DCOs.
In addition to two-stage scheduling, Mesos and kubernetes have many differences, such as their dependencies (ZOOKEEPER,ETCD, etc.) and how they are used. This article does not want to discuss the internal details of Mesos and/or kubernetes, so it will directly explore the advantages and disadvantages of both.
Status, strengths and weaknesses
Mesos and Kubernetes are more clear that they are at different stages of their own. Mesos was promoted by Mesosphere and achieved many successful milestone nodes this year, and Kubernetes released the first stable version in July. This means using a widely used project with a relatively long history (Mesos) or a new project (Kubernetes) with a bright future and good design.
I can spend a couple of hours talking about both, but if you're thinking about using them in a cluster, I don't think there's an absolute winner in either of these, so exploring the strengths and weaknesses of these is a useful reference before concrete practice.
Mesos Stack Benefits
- Proven scaling capabilities, Apple uses 75,000 nodes
- Extremely flexible. Nowadays, many enterprises use it in production environment, and there are many different mesos frameworks to meet different requirements.
- Relatively mature, making it easier to find use cases and best practices for the production environment.
- You can use a different format from the Docker container.
Disadvantage
- For different times, adapted to the era of Docker containers. This is obvious from some design decisions, including how the cluster information is exposed and, through the JSON API, is actually quite difficult to use.
- Too many languages. As a developer and ops person, I want to know what's going on in the cluster, and I'll be able to fix the problem when I find a code base problem. To run the Mesos stack, there are many components involved: Mesos (c + +), Marathon (Scala), Mesos-dns (Golang), and so on. It's not easy to find developers who are familiar with so many languages.
- All schedulers do not have a good abstraction for microservices, just like the abstraction of Pod,service,namespace. These are easy to implement, but not yet implemented.
Kubernetes Advantages
- Design a fairly sophisticated API.
- Pod,service,namespace is the right abstraction for microservices.
- A vibrant, fast-moving community.
- A language, Golang.
Disadvantage
- is still very young, will encounter a bug.
- There is no large-scale use of famous companies. Google itself is still using Borg, and many of the companies migrating to Kubernetes do not have large production clusters at the time of this writing.
- Docker only (when writing this article)
Conclusion
Many people are talking about these two technologies, and there is no obvious conclusion about who is the best cluster Manager for competition. If you want to use the cluster Manager, I strongly recommend that both Mesos and Kubernetes have a try, because there are a lot of places to learn, and you might want to know about both before you use it in a production environment. Let's hope that 2016 will truly be a mature year for kubernetes, to be truly used in production environments, and to see how the Mesos ecosystem can counter this formidable competitor.
Original link: Mesos and Kubernetes (translation: Tri Juenwen)
===========================
Translator Introduction
Tri Juenwen, a senior software engineer at IBM, is responsible for system testing of IBM WebSphere Business Process management software. Worked for VMware in the quality assurance of desktop virtualization products. Have a strong interest in virtualization, middleware technology, business process management.
Mesos and Kubernetes