I have a deployment specification that says launch 3 pods with nginx containers... Kubernetes creates an deployment object (spec + status). I learnt that deployment controller keeps track of this object and brings status to a desired state of 3 pods ... but couldn't find whether we get one deployment controller created for each deployment object or is there one deployment controller that monitors all deployment object ? Same applies to replication controller too? I know answering one would answer the other one...
Deployment controller internally uses replication controller which creates replicaset. Deployment controller and replication controller are part of kubernetes controller manager . You generally have more than one controller manager in a cluster for high availability. So for example if you have 3 controller managers then there are 3 deployment and replication controller internally. But at a time one of the controller manager is selected as leader and is active. So even though there are 3 deployment controller and 3 replication controller only one of those are active at a time.