We need multiple replicas of containers running at a time because: Redundancy: fault-tolerant system Scale: more requests can be served Sharding: computation can be handled in a parallel manner Multiple copies of pods can be created manually, but it’s a tedious process. We need a way in which a replicated set of pods can be managed and defined as a single entity. This what the ReplicaSet does: ensures the right types and number of pods are running correctly. Pods managed by a ReplicaSet are automatically rescheduled during a node failure or network partition. When defining ReplicaSet, we need: specification of the pods we want to create desired number of replicas a way of finding the pods controlled by the ReplicaSet Reconciliation Loops This is the main concept behind how ReplicaSets work and it is fundamental to the design and implementation of Kubernetes. Here we deal with two states: desired state is the state you want - the d