Kubernetes Replicaset

  • let’s take an example where we have a set of two worker nodes in a cluster as in the above diagram.
  • we have the front end, running on worker1 and the backend is on the worker2 node.
  • The application is working great as long as the pods and nodes are healthy and running.
  • Please note, these two pods are running without any controllers backing these parts as of now.
  • So the problem comes here, we know the frontend pod fails or dies for some reason and users accessing this Web app will no longer have access to it anymore.
  • The pod is not coming back online even after 15 or 20 minutes and to solve the problem developer needs to redeploy it manually.
  • It is OK if it is like 10 or 15 pots are running on the cluster and they’re not that critical.
  • But in a prod environment, there will be thousands of pods running in real-time and they’re critical.
  • It is almost impossible to recreate them manually if the pod dies for any reason.
  • That problem is solved by a replica set.
  • A ReplicaSet is a process that runs multiple instances of a Pod and keeps the specified number of Pods constant.
  • Its purpose is to maintain the specified number of Pod instances running in a cluster at any given time to prevent users from losing access to their application when a Pod fails or is inaccessible.
  • So taking the same example that if the frontend pod is created by replica set, the new front pod will be recreated.
  • Replica set also provides high availability and load balancing of the application.
  • It continuously monitors that application and recreates that if the pod dies.

Replication Controller Vs ReplicaSet

  • Replication controllers are older, it is replaced with the newer version, and that is called this replica Set.
  • The replication controller is not used anymore.
  • The concept that we discussed so far applies to both the replication controller and the replica set.
  • The difference between the replica set and the application controller is very minimal.
  • In real-time, we generally do not create or manage a replica set or even pods manually.
  • We deploy pods in Kubernetes using a resource type called deployment.
  • That deployment creates a replica set in the background automatically for us then this replica is responsible for creating and managing the desired number of pod and pod replicas mentioned in the deployment file.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store