Skip to main content
The kubelet is the primary agent that runs on every Kubernetes worker node. Think of it as the node’s captain: it registers the node with the control plane, receives and enforces PodSpecs from the API server, instructs the container runtime to pull images and start containers, continuously monitors pods and containers, and reports node and pod status back to the kube-apiserver. Key responsibilities:
  • Registering and reporting node status to the control plane
  • Watching for PodSpecs and ensuring containers are running as described
  • Interacting with the container runtime (containerd, Docker, CRI implementations)
  • Performing liveness/readiness probe handling and pod lifecycle management
  • Optionally bootstrapping TLS credentials for secure communication with the control plane
A diagram of Kubernetes architecture showing the Master side (etcd cluster, kube-apiserver, controller-manager, kube-scheduler) and Worker nodes with kubelet, containerd and containers/pods. Buttons on the right list actions like Register Node, Create Pods, and Monitor Node & Pods.

Installing the kubelet

If you deploy Kubernetes with kubeadm, be aware that kubeadm does not install the kubelet for you. Each node must have a supported container runtime and the kubelet installed and running before you use kubeadm to initialize or join a cluster.
kubeadm expects the kubelet and a supported container runtime to already be present on each node. It will not automatically install the kubelet.
You can install the kubelet in multiple ways (package manager, distribution packages, or from distribution-provided repositories). For small labs or controlled environments, a manual binary example looks like this:
Next, run the kubelet as a systemd service. Below is a minimal example unit file — adapt paths, flags and the container runtime endpoint to match your environment and Kubernetes version:
Enable and start the kubelet service:

Verifying kubelet status

You can verify the kubelet using systemd, logs, or by inspecting the process: Example verification commands:

Common kubelet flags

Configuration and TLS bootstrapping

Kubelet configuration can be provided via a static file (--config) or a dynamic config mechanism. Production clusters typically use TLS credentials for kubelet <-> API server communication. Kubelet supports certificate rotation and TLS bootstrap; refer to the Kubernetes docs for the recommended secure setup and certificate bootstrapping process.
Ensure kubelet and control plane component versions are compatible. Running mismatched versions or using unsupported flags can prevent nodes from joining the cluster.

References and further reading

That’s it for now.

Watch Video