Container orchestration automates the deployment, management, scaling, and networking of containers.
Our application packaged into a Docker container.
- How do you run it in production?
- What if your application relies on other containers such as databases or messaging services or other backend services?
- What if the number of users increases and you need to scale your application?
- How do you scale down when the load decreases?
To enable these functionalities, you need an underlying platform with a set of resources and capabilities. The platform needs to orchestrate the connectivity between the containers and automatically scale up or down based on the load. This whole process of automatically deploying and managing containers is known as Container Orchestration.
Kubernetes is a container orchestration technology. There are multiple such technologies available today. Docker has it own tool called docker swarm. Kubernetes from Google, and MESOS from Apache.
Kubernetes vs Docker Swarm vs MESOS
|Advantages||* Most popular|
* Options to customize deployments
* Supports deployment of complex architectures
|* Easy to set up||* Supports many advanced features|
|Weakness||*It is difficult to set up||* Lacks some of the advanced features required for complex applications|
* It is difficult to set up
Kubernetes is now supported on all public cloud service providers GCP, AZure, and AWS.
You application is now highly available as hardware failures to not bring your application down because we have muliple instances of your application running on different nodes. The user traffic is load balanced across the various containers. When demand increases, deploy more instances of the applications seamlessly and within a matter of seconds. And we have the ability to do that at a service level when we run out of hardware resources, scale the number of underlying nodes up or down without having to take down the application and do all of these easily with a set of declarative object configuration files.
It is a container orchestration technology used to orchestrate the deployment and management of hundreds and thousands of containers in a clustered environment.