Bobcares

nfs-subdir-external-provisioner not found Error

by | Mar 19, 2025

Learn how to troubleshoot the “nfs-subdir-external-provisioner not found” error in Kubernetes. Our Kubernetes Support team is here to help you with your questions and concerns.

Troubleshooting the “nfs-subdir-external-provisioner not found” Error in Kubernetes

error nfs-subdir-external-provisioner not found
Kubernetes offers dynamic storage provisioning through different external provisioners. The NFS Subdir External Provisioner is a popular external provisioner.

The NFS Subdir External Provisioner automates persistent volume provisioning by using an existing NFS server. It dynamically allocates storage with a specific naming convention:

${namespace}-${pvcName}-${pvName}

It offers seamless storage management without manual intervention. However, when errors pop up, Kubernetes applications may fail to access storage, leading to disruptions.

Hence, users may sometimes run into the “nfs-subdir-external-provisioner not found” error.

This error lets us know there are deployment issues within the Kubernetes cluster.

Impacts of the “nfs-subdir-external-provisioner not found” Error

When this error occurs, several critical issues can affect Kubernetes operations:

  • It prevents dynamic volume creation.
  • Additionally, PVCs cannot be fulfilled automatically.
  • Also, applications requiring persistent storage may fail to start or function correctly.
  • Pods relying on dynamic storage provisioning experience scheduling failures.
  • Furthermore, there is an inability to mount required volumes.
  • It also causes potential application unavailability.
  • Also, Kubernetes loses automated storage management capabilities.
  • Manual intervention is required for each storage request.
  • Increased administrative workload.
  • Loss of automated storage allocation.
  • Also, reduced cluster flexibility.
  • Additionally, increased manual storage management efforts.
  • Furthermore, existing persistent volumes may become inaccessible.
  • Also, there is a risk of data isolation or loss.
  • Inconsistent storage state across cluster nodes.
  • Also, network misconfigurations affect communication.
  • DNS resolution issues.
  • Also, it causes image registry access restrictions.
  • Inability to optimize storage resources dynamically.
  • Additionally, there is a risk of over or under-provisioning.
  • Furthermore, reduced operational efficiency.

Causes and Solutions

1. Helm Repository Configuration Issues

Outdated or misconfigured Helm repository settings can prevent deployment.

Click here for the Solution.


helm repo list
helm repo remove nfs-subdir-external-provisioner
helm repo update
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm search repo nfs-subdir-external-provisioner

Key verifications include:

  • Ensure the repository URL is correct.
  • Also, check network connectivity.
  • Furthermore, confirm Helm client version compatibility.

2. NFS Server Connectivity Diagnostics

Network connectivity issues preventing access to the NFS server.

Click here for the Solution.


ping nfs-server-ip
showmount -e nfs-server-ip
sudo systemctl status nfs-server
sudo firewall-cmd --list-all

Here are some recommendations:

  • Verify firewall rules.
  • Check network routing.
  • Ensure NFS service is running.

3. Helm Installation Parameter Optimization

Incorrect Helm installation parameters.

Click here for the Solution.


helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=ACTUAL_NFS_SERVER_IP \
--set nfs.path=/actual/exported/path \
--namespace kube-system

Here are the critical configuration parameters:

  • Replace `ACTUAL_NFS_SERVER_IP` with the actual server IP.
  • Also, use the full absolute path for NFS export.
  • Furthermore, ensure the correct namespace is specified.

4. Permission and Mount Restriction Resolution

Insufficient permissions for mounting NFS volumes.

Click here for the Solution.

First, edit `/etc/exports` on the NFS server:

/exported/path *(rw,no_root_squash,sync,no_subtree_check)

Then, restart NFS services:


sudo systemctl restart nfs-server
sudo exportfs -a

Here are a few additional fixes:

  • Ensure `kubelet` has sufficient mount privileges.
  • Then, adjust SELinux/App Armor permissions if needed.

5. Image Pull Strategy

Network restrictions or registry access problems.

Click here for the Solution.

docker pull registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2

Create an image pull secret:


kubectl create secret docker-registry regcred \
--docker-server=registry-url \
--docker-username=username \
--docker-password=password

6. Kubernetes RBAC Configuration

Insufficient permissions for storage management.

Click here for the Solution.

Define necessary `ClusterRole` and permissions as seen below:


apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: nfs-provisioner-role
rules:
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["create","delete","get","list","watch"]

7. StorageClass Configuration

Improper `StorageClass` definition.

Click here for the Solution.

Define a correct `StorageClass`:


apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-client
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: cluster.local/nfs-subdir-external-provisioner
parameters:
archiveOnDelete: "false"

Prevention Strategies

To avoid encountering this error in the future, here are a few tips from our experts:

  • Keep Kubernetes, Helm, and the NFS provisioner up to date.
  • Also, enable detailed logs for quick issue resolution.
  • Periodically verify connectivity to the NFS server.
  • Additionally, Kubernetes events and pod logs can be used for proactive error detection.
  • Also, create reproducible deployment scripts.
  • Furthermore, implement strict RBAC and network policies.

[Need assistance with a different issue? Our team is available 24/7.]

Conclusion

The “nfs-subdir-external-provisioner not found” error can seriously impact Kubernetes storage management. We can restore seamless storage provisioning by diagnosing the root causes and applying the recommended solutions.

In brief, our Support Experts demonstrated how to troubleshoot the “nfs-subdir-external-provisioner not found” error in Kubernetes.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF