liveBook · Manning

Controller manager

As explained in Acing the Certified Kubernetes Administrator Exam, Second Edition

kube-controller-manager is the Kubernetes control-plane component that runs controller processes regulating cluster state.

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

How Acing the Certified Kubernetes Administrator Exam, Second Edition covers it

How deep it goes
Explains reconciliation and operational placement, then applies logs, manifests, and pod inspection to failure diagnosis without detailing controller internals.
Examples
Uses Deployment replica scaling, Pending pods, kube-system listings, control-plane manifests, and crictl or kubectl logs during failures.
What it assumes
Builds from Kubernetes control-plane roles, pods, namespaces, Deployments, replicas, kubectl, and Linux services such as kubelet.
What you can do after
Diagnose/debug with kubectl, crictl, logs, describe output, and static-pod manifests when reconciliation or control-plane components fail.
How it connects
Connects the controller manager with Deployments, ReplicaSets, pods, namespaces, the scheduler, the API server, kubelet, and static pods.

Also explained in

Compare how 2 books explain controller manager →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Acing the Certified Kubernetes Administrator Exam, Second Edition. The section links point to the parts of the book it draws on.