Managing ReplicaSets

1. Listing ReplicaSets

kubectl get rs
kubectl get rs -l app=web
kubectl get rs -o wide
ColumnMeaning
DESIREDSpec replica count
CURRENTExisting pods
READYPods passing readiness

2. Describing ReplicaSet Details

SectionInfo
SelectormatchLabels
ReplicasDesired/current/ready
Pods StatusRunning/Waiting/Succeeded/Failed counts
Pod TemplateContainers, labels
EventsCreated/Deleted pod actions

3. Scaling ReplicaSets

kubectl scale rs web-7f8 --replicas=5
Warning: Scaling a Deployment-owned RS directly will be reverted by the Deployment controller. Scale the Deployment instead.

4. Deleting ReplicaSets

CommandBehavior
kubectl delete rs NAMEDelete RS + pods (cascading)
kubectl delete rs NAME --cascade=orphanKeep pods orphaned

5. Understanding ReplicaSet Selectors

spec:
  selector:
    matchLabels: { app: web, pod-template-hash: 7f8abc }
PropertyDetail
pod-template-hashAdded by Deployment to disambiguate RS
ImmutableSelector cannot change after creation

6. Viewing ReplicaSet Ownership

kubectl get rs web-7f8 -o jsonpath='{.metadata.ownerReferences}'
kubectl tree deploy web                # plugin: show ownership tree
FieldDetail
ownerReferences[].kindUsually Deployment
controller: trueMarks owner that reconciles

7. Viewing ReplicaSet Pods

kubectl get pods -l app=web,pod-template-hash=7f8abc
ApproachUse
label selectorMatch RS selector
field selector--field-selector=spec.nodeName=node1

8. Orphaning Pods During Deletion

--cascadeEffect
background (default)Owner deleted; GC removes children
foregroundOwner stays Terminating until children deleted
orphanOwner deleted; children remain

9. Understanding ReplicaSet vs Deployment

Deployment

  • Declarative updates & rollback
  • Manages multiple RS revisions
  • Use for stateless apps

ReplicaSet

  • Just maintains replica count
  • No rollout/rollback
  • Rarely used directly

10. Troubleshooting ReplicaSet Issues

SymptomLikely Cause
Pods stuck PendingUnschedulable (resources, selector, taints)
RS stuck at 0 readyReadiness probe failing
Image pull errorWrong image/tag, missing imagePullSecret
Selector mismatchRS selector doesn't match template labels
Stale RS persistsrevisionHistoryLimit too high or paused