The controller manager is a Kubernetes control-plane component that runs controllers responsible for matching observed cluster state to declared desired state. It regulates resources such as Deployments and ReplicaSets, creating or scaling pods when actual replicas differ from the requested count. section 1.5 section 2.1.2
Operationally, distinguish the controller manager from neighboring control-plane components:
- Investigate the controller manager when a Deployment is not scaling correctly or its pods do not match the desired replica count. section 8.2
- Find its system pod in the kube-system namespace on the control plane; control-plane components run as static pods described by manifests in /etc/kubernetes/manifests. section 2.1.2 section 8.2
- Do not confuse it with the scheduler, which assigns pods to nodes, or the API server, which exposes the Kubernetes API. section 1.5 section 2.1.2
Diagnosing failed Deployment scaling
After creating prod-app with nginx, scale it from one to three replicas using kubectl scale deploy prod-app --replicas 3. If the two new pods remain Pending, inspect the control-plane components rather than the application container. Check the controller manager for reconciliation problems and the scheduler when pods cannot be assigned to nodes; inspect kube-system logs and describe output when a component is unhealthy. section 8.2
kubectl get po -o wide -A --field-selector spec.nodeName=kind-control-plane
Use the cluster-wide pod listing filtered by control-plane node to locate the controller manager alongside the other control-plane system pods. section 2.1.2

