You already know:
A Pod runs containers.
But here’s the problem:
So Kubernetes introduces controllers.
A controller’s job is:
“Continuously ensure the cluster matches the desired state.”
And Deployment is one of those controllers.
Deployment
↓
ReplicaSet
↓
Pods
↓
Containers
You don’t directly manage ReplicaSets, Deployment does that for you.