A Kubernetes Controller is a type of resource that manages other - usually short-lived or ephemeral - resources. It works with the Kubernetes API to make sure the state of the resources it manages matches the desired state specified by users. For example, a Deployment is the controller that manages pods.