Kubernetes StatefulSet pods fail to mount Ceph PVCs on nodes upgraded to newer kubelet: 'failed to find device' in kubelet logs
Environment
On-prem kubeadm cluster: control plane on v1.26, worker nodes were recently upgraded from kubelet v1.25 to v1.27. Storage: Ceph RBD provisioned via CSI driver v3.x; nodes use kernel rbd module and rbd-nbd helpers. StatefulSet with ReadWriteOnce PVCs scheduled across nodes.
Symptoms
After the kubelet upgrade, StatefulSet pods scheduled to upgraded nodes fail to start due to mount errors. The same PVCs mount fine on older nodes that haven't been upgraded. Users see pods CrashLoopBackOff with events mentioning MountVolume.MountDevice and logs show 'failed to find device with major:minor' or 'device not found' errors.
Observations
On affected nodes, 'rbd map' executed manually maps the RBD image and the device node appears (/dev/rbdX). The CSI controller reports successful attach. kubelet logs (kubelet -v=4) show the attach success but subsequent mount fails because kubelet cannot find the device path it expects. There are no disk pressure or permission errors. udev events show the device appearing slightly later than the CSI attach completion timestamp.
Already attempted
Restarted kubelet and CSI driver pods, reloaded rbd kernel module, compared udev rules between working and non-working nodes, increased kubelet volume mount retry counts, and drained then uncordoned nodes. Manually mapping and binding the device allows the pod to start, indicating the device is present but not discovered by kubelet in time.
Question
Why does the upgraded kubelet fail to detect device nodes for attached Ceph RBD volumes (even though the device appears), and what reversible changes to kubelet/CSI/udev configuration can make mounts reliable again?
Verified community troubleshooting
No answers yet..
Incident analysis
Most likely causes
Summary
Suggested Fixes
Continue troubleshooting
Related troubles
Matched from the title, description and tags
- Cloud Computing29% match
Kubernetes nodes fail to pull container images after containerd overlay storage filled on GKE-like cluster
Open0 answers - Cloud Computing29% match
Kubernetes PVCs stuck Pending after node migration — CSI node plugin fails to register with kubelet
Open0 answers - Cloud Computing28% match
Kubernetes pods OOMKilled while node shows 80GB free memory on Ubuntu 20.04 (kubelet+Docker cgroup mismatch suspected)
Open0 answers - Cloud Computing25% match
Kubernetes pods CrashLoopBackOff only on upgraded nodes with hugepages enabled — short lived OOM at container startup
Open0 answers - Cloud Computing23% match
CoreDNS resolution breaks inside pods after kube-proxy switch to IPVS on Debian worker nodes
Open0 answers