Kubernetes - ReplicaSet
A ReplicaSet’s purpose is to maintain a stable set of replica Pods running at any given time. As such, it is often used to guarantee the availability of a specified number of identical Pods.
Replication Controller(Equality based) | ReplicaSet (Set Based |
It uses the operators ( =, ==, !=) | Operators ( in, notin,exists) |
Example env=prod, env!=stag | Env in(prod) |
Command Line kubectl get pods -l env=prod | Kubectl get pods ‘env in(prod,qa)’ |
Manifest selector: app: nginx-app
| selector: matchLabels: app: nginx-app matchExpressions: – {key: tier, operator: In, values: [frontend]} |
LAB
*******************************************************************
# 2. Create and display replicaset
kubectl create -f nginx-rs.yaml
kubectl get po -o wide
kubectl get po -l app=nginx-app
kubectl get rs nginx-rs -o wide
kubectl describe rs nginx-rs
kubectl get po -l ‘tier in (frontend)’
*******************************************************************
# 3. Automatic Pod Reschedule
kubectl get po -o wide –watch
kubectl get po -o wide
kubectl get nodes
*******************************************************************
# 4. Scale up pods
kubectl scale rs nginx-rs –replicas=5
kubectl get rs nginx-rs -o wide
kubectl get po -o wide
*******************************************************************
# 5. Scale down pods
kubectl scale rs nginx-rs –replicas=3
kubectl get rs nginx-rs -o wide
kubectl get po -o wide
*******************************************************************
# 6. Cleanup
kubectl delete -f nginx-rs.yaml
kubectl get rs
kubectl get po -l app=nginx-app