Updated at 2018-12-31 00:48

Kubernetes controllers have three responsibilities:

  1. maintain the desired cluster state
  2. watch the current state
  3. act so the current state becomes like the desired state

Controllers that operate on custom Kubernetes objects are called operators. Plain controllers work with standard objects such as nodes and pods.

Controllers Examples

Node Controller: watch and act when a node become unavailable.

__ Endpoints Controller__: manages endpoint objects, thus linking pods to services.

Service Account & Token Controllers: create accounts and access tokens.

ReplicaSet: ensures that a pre-configured numbers of pod duplicates are running.

StatefulSet: a collection of pods and maintains a sticky identity for each of the pods; like ReplicaSet but expects the endpoint to be stateful.

DaemonSet: ensures that all or a subset of the nodes run a copy of the pod; used for e.g. monitoring and logging.

Deployment: a collection of ReplicaSets with extra rollout and rollback features.