Kubernetes node NotReady (Kubelet stopped posting node status)

The control plane hasn’t heard from a node’s kubelet, or the kubelet reports a problem — pods there stop being scheduled and are later evicted.

Seen on: Kubernetes

Meaning

NotReady comes from the kubelet being down, the container runtime failing, the CNI plugin not ready (“network plugin is not ready: cni config uninitialized”), the node out of disk/memory/PIDs, or the network to the API server breaking.

Common causes

  • kubelet or containerd stopped/crashing
  • CNI not installed or its pod failing
  • Node resource pressure (disk, memory, PID)
  • Expired kubelet certificates
  • Network partition to the control plane

⚡ Quick fix

  1. kubectl describe node → Conditions and events
  2. On the node: systemctl status kubelet containerd; journalctl -u kubelet
  3. Check CNI pods in kube-system

Detailed fix by platform

Linux

  1. bash
    sudo systemctl status kubelet containerd
    sudo journalctl -u kubelet --since '15 min ago' | tail -50

Kubernetes

  1. bash
    kubectl describe node worker-2 | sed -n '/Conditions/,/Addresses/p'
    kubectl get pods -n kube-system -o wide | grep worker-2

How to diagnose

  1. Conditions — Ready reason/message
  2. Kubelet — Service running, logs
  3. CNI — Network plugin pods on that node

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.