Kubernetes NFS persistent volumes permission denied Kubernetes NFS persistent volumes permission denied docker docker

Kubernetes NFS persistent volumes permission denied


If you set the proper securityContext for the pod configuration you can make sure the volume is mounted with proper permissions.

Example:

apiVersion: v1kind: Podmetadata:  name: demospec:  securityContext:    fsGroup: 2000   volumes:    - name: task-pv-test-storage      persistentVolumeClaim:        claimName: task-pv-test-claim  containers:  - name: demo    image: example-image    volumeMounts:    - name: task-pv-test-storage      mountPath: /data/demo

In the above example the storage will be mounted at /data/demo with 2000 group id, which is set by fsGroup. By setting the fsGroup all processes of the container will also be part of the supplementary group ID 2000, thus you should have access to the mounted files.

You can read more about pod security context here: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/


Thanks to 白栋天 for the tip.For instance, if the pod securityContext is set to:

securityContext:  runAsUser: 1000  fsGroup: 1000

you would ssh to the NFS host and run

chown 1000:1000 -R /some/nfs/path

If you do not know the user:group or many pods will mount it, you can run

chmod 777 -R /some/nfs/path


A simple way is to get to the nfs storage, and chmod 777, or chown with the user id in your volume-test container