As described in google doc I enable the filestore csi driver in my cluster. It created automatically
differents storageclass.
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
enterprise-multishare-rwx filestore.csi.storage.gke.io Delete WaitForFirstConsumer true 2d10h
enterprise-rwx filestore.csi.storage.gke.io Delete WaitForFirstConsumer true 2d10h
premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 59d
premium-rwx filestore.csi.storage.gke.io Delete WaitForFirstConsumer true 2d10h
standard kubernetes.io/gce-pd Delete Immediate true 59d
standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 59d
standard-rwx filestore.csi.storage.gke.io Delete WaitForFirstConsumer true 2d10h
zonal-rwx filestore.csi.storage.gke.io Delete WaitForFirstConsumer true 2d10h
I use one of this storageclass: standard-rwx to create a PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nwapi-uploads
spec:
accessModes:
- ReadWriteMany
storageClassName: standard-rwx
resources:
requests:
storage: 10Gi
Then I create a pod who need this PVC
I see that a PV is created
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
pvc-a02dcb94-0867-4dc1-aa09-b92108e66a63 1Ti RWX Delete Bound nwapi/nwapi-uploads standard-rwx <unset> 7h38m
but the pod is not able to use it I've got this event :
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedMount 92s (x110 over 7h19m) kubelet MountVolume.MountDevice failed for volume "pvc-a02dcb94-0867-4dc1-aa09-b92108e66a63" : rpc error: code = DeadlineExceeded desc = context deadline exceeded
I don't see any in logs that can explain this issue.
Even If I delete the pod and recreate it the result is the same.
Does some one has already use standard-rwx and solve this kind of trouble or have any idea about this topic?
Solved! Go to Solution.
We found the solution, the storageclass created by enabling the filestoredriver is incomplete it doesn't a mandatory parameter if you don't use the default network.
so on you have to create your own storageclass like this:
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
components.gke.io/component-name: filestorecsi
components.gke.io/component-version: 0.12.22
components.gke.io/layer: addon
labels:
addonmanager.kubernetes.io/mode: EnsureExists
k8s-app: gcp-filestore-csi-driver
name: standard-rwx-my-storageclass. #<======= change it
parameters:
tier: standard
network: your-network #<=========== change it for your own network name
provisioner: filestore.csi.storage.gke.io
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
No the solution was on network parameter that need to be added to the storageclass definition. It works without Cloud Filestore API
We found the solution, the storageclass created by enabling the filestoredriver is incomplete it doesn't a mandatory parameter if you don't use the default network.
so on you have to create your own storageclass like this:
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
components.gke.io/component-name: filestorecsi
components.gke.io/component-version: 0.12.22
components.gke.io/layer: addon
labels:
addonmanager.kubernetes.io/mode: EnsureExists
k8s-app: gcp-filestore-csi-driver
name: standard-rwx-my-storageclass. #<======= change it
parameters:
tier: standard
network: your-network #<=========== change it for your own network name
provisioner: filestore.csi.storage.gke.io
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
U need to enable the filestore API "Cloud Filestore API".
"
No the solution was on network parameter that need to be added to the storageclass definition. It works without Cloud Filestore API