The purpose of a ReplicaSet is to maintain a stable set of identical Pods. One can specify the number of Pods one desires, known as replicas, and the ReplicaSet will ensure that the desired number of pods are always kept available.

Here’s a sample ReplicaSet definition file.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: a-replica-set
spec:
  # replicas is used to specify the number of Pods we want to have running
  replicas: 1
  # selector is used to tell ReplicaSet which Pods we want it to maintain
  selector:
    matchLabels:
      key: value
  # template is used to tell ReplicaSet to create Pods with this template (definition)
  template:
    metadata:
      name: name-of-pod
      labels:
        key: value
    spec:
      containers:
        - name: container-name
          image: image-name

One thing to note that it is recommended to use Deployments over ReplicaSets when we want to use ReplicaSets. When we use Deployments, we don’t have to worry about managing our ReplicaSets. Read this for more info.

Resources