Kubelet is an agent which communicates with the Master node and executes on nodes or the worker nodes. The agent is responsible for making sure that the containers are running on the nodes as expected.
The Kubelet in the Kubernetes worker node registers the node in the Kubernetes cluster. This is agent watches the Kube API server for pods assigned by the scheduler to its node, executes the task, and reports back to the Master.
It also monitors pods and reports back to the control panel if a pod is not fully functional. Based on that information, the Master can then decide how to allocate tasks and resources to reach the desired state.
This Kubelet agent will get a notification from the Kube API server and it will then contact the container runtime like Docker for e.g. to go out and pull images that requires to run the pod.
For example, when Kubelet agent receives instructions to load a container or a pod on the node, it requests the container runtime engine, which may be docker to pull the required image and run an instance. The kubelet then continuously monitor the state of the pod and containers in it and reports to the kube api server on a timely basis.