Summary
The driver claims to support NFSv3, but dynamic provisioning with NFSv3 fails due to a fundamental protocol limitation.
Problem
When using nfsvers=3 mount option, the driver attempts to mount subdirectories like:
mount -t nfs -o nfsvers=3 10.0.40.233:/x/pvc-8c532bdf-5405-4606-9021-0ef2abbbd32c /var/lib/kubelet/...
This always fails with:
mount.nfs: mounting 10.0.40.233:/x/pvc-8c532bdf-5405-4606-9021-0ef2abbbd32c failed, reason given by server: No such file or directory
Root Cause
NFSv3 protocol limitation: NFSv3 can only mount paths explicitly listed in /etc/exports. It cannot mount subdirectories of an exported path unless they are separately exported.
- If
/etc/exports only contains /x, NFSv3 cannot mount /x/pvc-xxx
- NFSv4's pseudo-filesystem (with
fsid=0) allows mounting subdirectories
- The driver's current design relies on NFSv4 semantics