The emergence a few years ago of solutions designed to simplify the creation and management of containers, such as Docker or rkt, combined with micro-services approaches and their growing popularity, quickly prompted the need for
container orchestration solutions.
Many orchestration solutions have appeared and subsequently been made available as Open Source.
Just a couple of years ago, the Mesos and Docker communities had worked really hard to give Mesos the ability to orchestrate Dockers.
Yet this did not stop Docker, Inc. from launching its own solution, Docker Swarm, to address these issues, with a clear desire to provide an orchestration solution that would be more integrated to Docker and easier to implement, while fully conceding that it did not manage resources as finely as Mesos.
Each solution in its own place, addressing distinct needs. No real competition between the two.
Mesos (via Marathon) seemed to have taken the lead over its competitors. But in mid-2017, things started to tilt in favor of Kubernetes, which had been used at Google for over 10 years.
So what leads us to think that Kubernetes has won this battle and become, just like Docker for containers, the industry standard ?
A number of clear signals
- Kubernetes is currently one of the most active projects on Github.
- Platforms such as OpenShift or CoreOS integrate Kubernetes.
- The CNCF((Cloud Native Computing Foundation)) has made it its first Graduated project, the highest status.
- The ecosystem around Kubernetes is growing very fast for more integrations around systems, monitoring, security, continuous deployment…
Public cloud providers have adopted it
All major cloud platforms offer Kubernetes as a service :
- Google Cloud Platform with GKE((Google Kubernetes Engine))
- Amazon Web Services with EKS((Amazon Elastic Container Service for Kubernetes))
- Azure with AKS((Azure Kubernetes Service))
- Digital Ocean offers a private beta
Docker for Mac integrates Kubernetes natively
Docker announced last year that Kubernetes would be integrated directly into its Docker for Mac application and now offers the choice between Swarm and Kubernetes.
Should we really forget all other solutions and only use Kubernetes ?
For orchestration issues combining non-containerized applications and/or containers, then a solution like Mesos can be really helpful.
For orchestration issues related only to containers, on a limited number of servers and containers, a solution like Docker Swarm will certainly be a better, simpler way to start.
And finally, if you need a reliable, robust, scalable and durable solution, then all indicators clearly point to Kubernetes.