A Kubernetes controller continuously compares the cluster with the requirements declared in configuration and takes action to fulfill them. For a Deployment, that means creating and managing the requested Pods rather than leaving each Pod to operate alone. section 3.5 section 3.2.4
A Deployment controller can:
- Create the requested number of Pods, such as three replicas. section 3.2.4
- Replace Pods with newer versions after the container configuration changes. section 3.2.4
- Reschedule Pods evicted during planned maintenance, unplanned maintenance, or node failure. section 3.2.4
- Keep acting after configuration changes are applied, rather than performing only a one-time deployment. section 3.5
Managed versus direct Pod
Creating a Pod directly gives Kubernetes a workload that is not managed by a controller. It can be rebooted after a crash, but it is not rescheduled after eviction caused by an upgrade or node failure. Creating a Deployment instead lets its controller manage the Pod lifecycle. section 3.2.4
Inspect the Deployment composition to see how a higher-order workload embeds a Pod specification that the controller manages. section 3.2.4

