KubeErrors

CSI driver not found: The named CSI driver is not registered on the node or in the cluster

This means a volume asked for a CSI driver that Kubernetes does not know about — either the driver is not installed, its node plugin is missing from that node, or the name in the StorageClass is misspelled.

Applies to: All Kubernetes versions using CSI storage

What it means

CSI drivers register themselves with the cluster as CSIDriver objects and with each node through the kubelet's plugin registration mechanism. A StorageClass or a volume references a driver by name, and if that name does not resolve, the operation fails with a message such as driver name … not found in the list of registered CSI drivers. There are two distinct places this can break. Cluster-wide, the driver may simply not be installed. Per-node, the driver's DaemonSet may not be running on the node the pod landed on — which produces a failure that affects some nodes and not others and looks intermittent until you notice the pattern.

Most common causes

How to diagnose it

  1. List registered drivers: kubectl get csidrivers. If the name is absent, the driver is not installed.
  2. Check the node plugin on the affected node: kubectl get pods -n kube-system -o wide | grep csi.
  3. Compare the name in the StorageClass against the registered name exactly: kubectl get storageclass NAME -o jsonpath='{.provisioner}'.
  4. Check the node plugin's registrar container logs for registration errors.
  5. Confirm the DaemonSet tolerates the taints on the nodes you need it to run on.

How to fix it

  1. Install the CSI driver, following the provider's instructions for the Kubernetes version in use.
  2. Add the tolerations the node plugin DaemonSet needs so it runs on every node that will host workloads with volumes.
  3. Correct the provisioner name in the StorageClass.
  4. Restart the node plugin if registration did not complete.
  5. If the kubelet uses a non-default root directory, configure the driver's registration path to match.

Notes

A driver that is registered cluster-wide but missing on one node produces failures only for pods that happen to land there. Checking get csidrivers alone can therefore give a clean answer while the problem is real — the per-node check is the one that finds it.

Related

Sources

Pages on this site are written with AI assistance from the primary sources listed on each page, then checked against those sources before publishing.