In Kubernetes, a controller is 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. There are several in the Kubernetes Architecture that support different functions in the system.

Namespace controller - Creates and updates the Namespaces in kubernetes

Serviceaccounts controller - Manages the service accounts in the system, which are for processes to interact with Kubernetes.

Node Controller - Responsible for noticing and responding when nodes go down. Service Account & Token Controllers: Create default accounts and API access tokens for new namespaces.

Deployment Controller - A Deployment controller provides declarative updates for Pods and ReplicaSets.

Replication Controller - Responsible for maintaining the correct number of pods for every replication controller object in the system.

Endpoints Controller - Populates the Endpoints object (that is, joins Services & Pods). When services are created, the Endpoint controller manages the connection between services and the pods back the service.