In our previous article in series, basics on Kubernetes, we talked about what exactly are deployments, you can find the link of the article below. In this article, we are going to talk about what is ReplicaSet and how they help in scaling your application.
What are ReplicaSet and its objective?
ReplicaSet is an object in Kubernetes. The primary objective of replicaset is to define the number of replicas that will run for any type of pod. It is used to guarantee a stable number of pods always running.
What component uses ReplicaSet?
The deployment object of Kubernetes uses replicaset to maintain the number of pods defined in the spec. ReplicaSet makes sure the number of pods defined in deployment is running all the time.
Look at the below diagram of how deployment works with replicaset.
How ReplicaSet marks the pod that it is maintaining?
ReplicaSet uses a selector to identify a new pod as a part of it. If the pod has no OwnerReference or Owner Reference is not a Controller and it matches repliaset’s selector, it will be identified as part of replicaset.
Should we use ReplicaSet?
Deployment provides an abstraction above replicaset, it is advisable to use deployments only. Deployment provides updates to pod, rolling updates, etc by managing the replicaset. You don’t need to touch replicaset objects, you only interact with deployments.
You may need to use replicaset only in case you are writing some custom update orchestration.
How you can create replicaset in Kubernetes?
Look at the yaml below. It will create a replicaset and launch pods for you.
## taken from kubernetes.io
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
# modify replicas according to your case
replicas: 3
selector:
matchLabels:
tier: frontend
template:
metadata:
labels:
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google_samples/gb-frontend:v3
Submit the above yaml and run the below command to see the replicaset
kubectl get rs
NAME DESIRED CURRENT READY AGE
frontend 3 3 3 6s
You can read more about replicaset here on official documentation.
This is it for this article, if you like the article please share and subscribe.