Kubernetes PVCs stuck Pending after node migration — CSI node plugin fails to register with kubelet
Environment
On-prem K8s 1.25 cluster running kubelet systemd service on Ubuntu 22.04 nodes. CSI driver for vendor SAN is deployed as a DaemonSet (node plugin) and StatefulSet (controller). Problem observed after rolling nodes to a new image with a different container runtime and cgroup driver (systemd -> cgroupfs).
Symptoms
New nodes show PVCs for StatefulSet pods stuck in Pending with events 'no persistent volumes available for claim'. kubectl get csidrivers shows driver present, but describing the node shows 'no CSINode info' for the driver. Existing pods on old nodes with same storage continue working.
Observations
DaemonSet pods for CSI node plugin are Running on new nodes, but csi plugin logs show repeated 'failed to register node plugin: rpc error: code = Unavailable'. kubelet logs contain 'GRPC: failed to dial unix...' for the csi socket path. /var/lib/kubelet/plugins contains the driver directory but with socket absent or with root-owned socket when plugin runs as non-root.
Already attempted
Restarted CSI node plugin DaemonSet pods and kubelet on affected nodes. Verified SELinux/AppArmor not in Enforcing mode. Compared permissions of /var/lib/kubelet/plugins/* between working and broken nodes; manually created the expected socket file (test) but kubelet reports same error. Did not roll back node image.
Question
What are the likely causes preventing CSI node plugin registration after the container runtime/cgroup driver change, and what reversible diagnostics and fixes can restore PV/PVC binding without data loss?
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 Computing34% match
Kubernetes StatefulSet pods fail to mount Ceph PVCs on nodes upgraded to newer kubelet: 'failed to find device' in kubelet logs
Open0 answers - Cloud Computing32% match
Kubernetes pods OOMKilled while node shows 80GB free memory on Ubuntu 20.04 (kubelet+Docker cgroup mismatch suspected)
Open0 answers - Cloud Computing28% match
Kubernetes nodes fail to pull container images after containerd overlay storage filled on GKE-like cluster
Open0 answers - Cloud Computing21% match
Kubernetes pods repeatedly OOM-killed even though node has ample free memory — cgroup vs kubelet limit mismatch
Open0 answers - Virtualization20% match
Docker Swarm overlay: intermittent packet loss between nodes after lowering MTU — vxlan fragmented frames dropped
Open0 answers