How does Kubernetes Achieve it?
For Example, we have two worker nodes of Kubernetes Cluster – Server one and Server two. Each of these server is holding a replica of an application called “my app” and a database application. We also have an ingress component which basically handles every incoming request to the application so if someone accessed “my app” website on a browser, the request would come in to ingress. Ingress is load-balanced so we have replicas of ingress on multiple servers. Ingress will forward that request to the Service for my application. Service is a load balancer that will direct that request to the respective replicas of the Pod.
In this entire process – from entry point of the request into the cluster till the last end point, every component is replicated and load-balanced which means that in this whole setup there is no bottleneck where a request handling could stop the whole application and make the responses slower for a user. Now even if the Server two gets completely crashed and all the Pods that were running on it died. we would still have replicas of our application running. Therefore, there will be no downtime. Also, in the meantime a Kubernetes master process called Controller Manager would actually schedule new replicas of the died Pods on another worker node let’s call it Server 3. And recover the previous load-balanced and replicated application state. While the node servers actually do the work of running the applications, the master processes on the master nodes actually monitor the cluster state and make sure that if a Pod dies it automatically gets restarted, if something crashes in the cluster – it automatically gets recovered.
An important Master component that is used to manage the cluster mechanism to run properly is the etcd store. etcd store stores the cluster state (like the resources available on the Node and the Pod state etc) at any given time.
Why Kubernetes? Benefits of using Kubernetes
The popularity of container orchestration technologies specially Kubernetes comes from its use cases and the problems that it solves. Kubernetes is the most popular container orchestration and is widely used by
Cloud Native Computing Foundation (CNCF), the foundation to which Kubernetes as a project was donated by Google, estimates that about 92% businesses that uses any Container Orchestration tool is using Kubernetes. In this article we are discussing the benefits of Container Orchestration tools especially Kubernetes. We will be discussing the core use cases of Container Orchestration technologies like Scalability, Disaster Recovery, etc. rather than facts like Kubernetes is Open-sourced etc.