Mount NFS in Kubernetes Pod

An NFS (Network File System) is one of the most useful volume types in Kubernetes.

To mount a directory shared from an NFS server to a container running in a Kubernetes Pod it is required to do the following:

  1. Add the NFS volume to the Pod.
  2. Set the NFS server and path to the share.
  3. Mount the NFS volume in the container.

This note shows how to mount the NFS in the Kubernetes Pod by creating the appropriate manifest file in YAML.

Cool Tip: How to troubleshoot when a Deployment is not ready and is not creating Pods on a Kubernetes cluster! Read more →

Mount NFS in Kubernetes Pod

The snippet below shows the minimal Pod definition with the Nginx container and the mounted NFS volume:

# pod.yml
---
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    # Mount the NFS volume in the container
    volumeMounts:
    - name: nfs-share
      mountPath: /mnt/nfs-share
  # Add the NFS volume to the Pod
  volumes:
  - name: nfs-share
    # Set the NFS server and path to the share
    nfs:
      server: nfs.server.example.tld
      path: /nfs-share

The above Pod definition creates a container with the shared folder from the NFS server mounted at /mnt/nfs-share.

Cool Tip: How to kubectl apply all files in a directory! Read more →

Leave a Reply