Node integration flow
Understand how Klustre CSI interacts with kubelet and the host filesystem.
Daemonset host mounts
DaemonSet/klustre-csi-node mounts the following host paths:
/var/lib/kubelet/pluginsand/var/lib/kubelet/pods– required for CSI socket registration and mount propagation./dev– ensures device files (if any) are accessible when mounting Lustre./sbin,/usr/sbin,/lib,/lib64– expose the host’s Lustre client binaries and libraries to the container.
If your kubelet uses custom directories, update pluginDir and registrationDir in the settings ConfigMap.
CSI socket lifecycle
- The node plugin listens on
csiEndpoint(defaults to/var/lib/kubelet/plugins/lustre.csi.klustrefs.io/csi.sock). - The node-driver-registrar sidecar registers that socket with kubelet via
registrationDir. - Kubelet uses the UNIX socket to call
NodePublishVolumeandNodeUnpublishVolumewhen pods mount or unmount PVCs.
If the daemonset does not come up or kubelet cannot reach the socket, run:
kubectl describe daemonset klustre-csi-node -n klustre-system
kubectl logs -n klustre-system daemonset/klustre-csi-node -c klustre-csi
PATH and library overrides
The containers inherit PATH and LD_LIBRARY_PATH values that point at the host bind mounts. If your Lustre client lives elsewhere, override:
nodePlugin.pathEnvnodePlugin.ldLibraryPath
via Helm values or by editing the daemonset manifest.
Health signals
- Kubernetes events referencing
lustre.csi.klustrefs.ioindicate mount/unmount activity. kubectl get pods -n klustre-system -o wideshould show one pod per labeled node.- A missing pod usually means the node label is absent or taints/tolerations are mismatched.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.