Why is my persistent disk failing to mount to my pod?

6/6/2019

I've been trying to find out why my pod won't start up, when I go to describe it I get this:

Events:
  Type     Reason                  Age               From                      Message
  ----     ------                  ----              ----                      -------
  Normal   Scheduled               2m                default-scheduler         Successfully assigned my-namespace/nfs to gke-default-pool
  Normal   SuccessfulAttachVolume  2m                attachdetach-controller   AttachVolume.Attach succeeded for volume "nfspvc"
  Warning  FailedMount             50s               kubelet, default-pool     Unable to mount volumes for pod "nfs-8496cc5fd5-wjkm2_sxdb-branch161666(28ff323d-8839-11e9-a080-42010a8400bb)": timeout expired waiting for volumes to attach or mount for pod "my-namespace"/"nfs-8496cc5fd5-wjkm2". list of unmounted volumes=[nfspvc]. list of unattached volumes=[nfspvc default-token-ntmfv]
  Warning  FailedMount             28s (x9 over 2m)  kubelet, default-pool     MountVolume.MountDevice failed for volume "nfspvc" : executable file not found in $PATH

When I describe the compute disk, all looks good:

creationTimestamp: '2019-06-06T01:56:31.079-07:00'
id: '5701286856735681489'
kind: compute#disk
labelFingerprint: 42WmSpB8rSM=
lastAttachTimestamp: '2019-06-06T01:57:51.852-07:00'
name: nfs-pd
physicalBlockSizeBytes: '4096'
selfLink: <omitted>
sizeGb: '10'
status: READY
type: <omitted>
users:
- <omitted>
zone: <omitted>


Updates are available for some Cloud SDK components.  To install them,
please run:
  $ gcloud components update

And here is my pods manifest:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    role: nfs
  name: nfs
  namespace: my-namespace
spec:
  replicas: 1
  selector:
    matchLabels:
      role: nfs
    spec:
      containers:
      - image: gcr.io/google_containers/volume-nfs:0.8
        name: nfs
        ports:
        - containerPort: 2049
          name: nfs
          protocol: TCP
        - containerPort: 20048
          name: mountd
          protocol: TCP
        - containerPort: 111
          name: rpcbind
          protocol: TCP
        volumeMounts:
        - mountPath: /exports
          name: nfspvc
      restartPolicy: Always
      volumes:
      - gcePersistentDisk:
          fsType: ext4i
          pdName: nfs-pd
        name: nfspvc

I'm not really sure what 'MountVolume.MountDevice failed for volume "nfspvc" : executable file not found in $PATH' means, or what else I should look in to, to investigate the source of the issue?

If it makes any difference, this is created by a script, the ordering of which is:

  1. Create the compute disk
  2. Run helm, which in turn creates the above deployment, service, persistent volume, and persistent volume claim.
-- Andy
google-compute-engine
google-kubernetes-engine
kubernetes

1 Answer

6/6/2019

fsType: ext4i

Try removing that 'i'.

-- Lozano
Source: StackOverflow