--- title: Controller id: controller date: 2018-04-12 full_link: /docs/concepts/architecture/controller/ short_description: > A control loop that watches the shared state of the cluster through the apiserver and makes changes attempting to move the current state towards the desired state. aka: tags: - architecture - fundamental --- In Kubernetes, controllers are control loops that watch the state of your {{< glossary_tooltip term_id="cluster" text="cluster">}}, then make or request changes where needed. Each controller tries to move the current cluster state closer to the desired state. <!--more--> Controllers watch the shared state of your cluster through the {{< glossary_tooltip text="apiserver" term_id="kube-apiserver" >}} (part of the {{< glossary_tooltip term_id="control-plane" >}}). Some controllers also run inside the control plane, providing control loops that are core to Kubernetes' operations. For example: the deployment controller, the daemonset controller, the namespace controller, and the persistent volume controller (and others) all run within the {{< glossary_tooltip term_id="kube-controller-manager" >}}.