If you are a microservice developer or a DevOps engineer there is a good chance you came across Kubernetes. Many tech giants have adopted it for orchestrating their containers. let us try to understand what it is and why it is so popular.
Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management. This is the Wikipedia definition and this is the simplest one out there. But let us elaborate on this.
What Do We Mean by Container-Orchestrator?
In today’s world whenever we build any application using the microservice architecture we use docker containers to deploy them because these containers encapsulate everything that the service needs to run and help us to easily change environments if we need to do without affecting the containers. Because we are talking about microservice architecture we will most probably be dealing with multiple containers. Multiple containers running in production can be 2,3, a dozen, or even thousands and they need to be continuously deployed, updated, managed, connected, scaled up and down, redeployed, etc. Doing these tasks manually will be a nightmare and would require a good workforce. Now, this is where Kubernetes knocks at our door and makes our lives easier.
So basically Kubernetes, also known as K8s, helps us:
Deploy containers as well as manage applications.
Scale them up and down according to demand.
Automates rollouts and rollbacks.
Whenever we say we are running K8s it actually means that we are running a Kubernetes cluster. A K8s cluster is a set of nodes (virtual or physical machine) that runs containerized applications.
The K8s cluster has 2 main components:
Kubernetes master node contains a Control Plane which also consists of several components.