kubelet

Kubernetes Node Agent (kubelet)

System ProcessSafeKubernetes Component
CPU Usage
2-15%
Memory
60-180 MB
Location
/usr/bin/kubelet
Publisher
Cloud Native Computing Foundation (CNCF)

Quick Answer

kubelet is safe. It is the Kubernetes node agent that runs on each worker node to start, stop, and supervise containers as directed by the control plane.

Is it a Virus?
 NO - Safe
Must be in /usr/bin/kubelet or /usr/local/bin/kubelet
Can I Disable?
 YES
Disabling kubelet stops pod lifecycle management on that node and can cause the node to become unschedulable.

What is kubelet?

kubelet is the primary agent that runs on every Kubernetes worker node to ensure containers and pods are created, started, and kept in the desired state as defined by the control plane. It talks to the API server, coordinates with the container runtime, and monitors node resources to maintain health and readiness of workloads.

The kubelet runs as a system service on each node and enforces pod specs by interfacing with the container runtime (CRI). It monitors node health, reports statuses to the API server, and executes lifecycle actions such as starting, stopping, and evicting pods.

Quick Fact: Kubelet communicates with the Kubernetes API server using the kubelet configuration and kubeconfig, and it uses the CRI (Container Runtime Interface) to manage containers.

Kubelet Responsibilities

Is kubelet Safe?

Yes, kubelet is safe when installed from official Kubernetes distribution packages and run as a proper service on legitimate nodes.

Is kubelet a Virus or Malware?

The real kubelet is not a virus. Malware may impersonate kubelet names or run binaries with similar names, so verify the binary path and package source.

How to Tell if kubelet is Legitimate or Malware

  1. File Location:: Must be in /usr/bin/kubelet or /usr/local/bin/kubelet. Any kubelet binary in /tmp, /opt, or /home is suspicious.
  2. Package Origin:: If installed via a package manager, verify the package source: dpkg -S /usr/bin/kubelet (Debian/Ubuntu) or rpm -qf /usr/bin/kubelet (RHEL/CentOS/Fedora).
  3. Service & ExecPath:: Check the systemd unit at /etc/systemd/system/kubelet.service to ensure ExecStart points to /usr/bin/kubelet.
  4. Cluster Connectivity:: Verify kubelet can reach the API server and the kubeconfig is valid: check /etc/kubernetes/kubelet.conf or ~/.kube/config and test certificate trust.

Red Flags: If kubelet is located outside standard paths (/usr/bin/kubelet, /usr/local/bin/kubelet), lacks package provenance, or starts unexpectedly on a node not in your cluster, scan the system for tampering.

Why Is kubelet Running on My Node?

kubelet runs on each node to realize the desired state for pods and containers as described by the control plane. It continuously monitors node health, coordinates with the container runtime, and updates the API server with status information.

Reasons it's running:

Can I Disable or Remove kubelet?

Yes, you can disable kubelet. However, disabling kubelet on a node stops container lifecycle management and will make the node non-functional for scheduling until re-enabled.

How to Stop kubelet

How to Uninstall kubelet

Common Problems: kubelet Startup, Health, and Node Communication

If kubelet is not behaving as expected on a node, common issues include startup failures, crash loops, or problems communicating with the API server. Review logs, config, and certificates to diagnose and fix issues quickly.

Common Causes & Solutions

Quick Fixes:
1. Check kubelet status: sudo systemctl status kubelet
2. View recent logs: journalctl -u kubelet --since "2 hours ago"
3. Verify kubelet config: cat /var/lib/kubelet/config.yaml or /etc/kubernetes/kubelet.conf
4. Ensure CRI is running: systemctl status containerd or crio
5. Restart kubelet if needed: sudo systemctl restart kubelet

Frequently Asked Questions

What is kubelet in Kubernetes?

Kubelet is the agent that runs on each Kubernetes node to manage pods and containers as directed by the control plane.

Is kubelet safe to run on my cluster?

Kubelet is generally safe when installed from your distribution's package manager or official Kubernetes bundles. Verify the binary path, executable name, and signature if applicable.

Can I disable kubelet on a node?

Yes. You can stop kubelet with systemctl stop kubelet and prevent it from starting on boot with systemctl disable kubelet. This will stop pod management on that node.

How do I view kubelet logs?

To check kubelet logs, run journalctl -u kubelet or journalctl -f -u kubelet for live logs. You can also enable verbose logging with --v=2 or higher in the kubelet config.

How do I update kubelet?

To update kubelet, use your distribution's package manager (e.g., apt-get update && apt-get upgrade kubelet or yum update kubelet) or upgrade the node image to a version compatible with your cluster.

What if kubelet won't start after a change?

If kubelet fails to start after a change, rollback the config, check system logs, verify the API server address, test network connectivity, and ensure container runtime is healthy.

Related Processes