How does Kubernetes provide high availability of applications in a Cluster?

In a Kubernetes cluster, there is a Deployment Controller. This controller monitors the instances created by Kubernetes in a cluster. Once the node or the machine hosting the node goes down, Deployment Controller will replace the node. It is a self-healing mechanismin Kubernetes to provide high availability of applications. Therefore in the Kubernetes cluster, Kubernetes Deployment Controller is responsible for starting the instances as well as replacing the instances in case of failure.