I'm a volunteer developer working in an NGO, we don't have much money so some companies gives us graciously some old hardware that I try to use to develop web applications for the NGO. As I'm lonely, I'm trying to automate everything and then I want to use docker, and k8s for staging and production. I'm not a k8s expert, I'm a very beginner and I'm learning on the job.

I've installed a k8s cluster which is working, but now I have issue with storage. I don't know what to choose to provision it.

We have two NAS replicated between them. We can share volumes with iSCSI, CIFS, NFS, etc. What I need is to use this storage as backend. But I also need to choose the persistent volume size (with Claims), multi-attach, and snapshots.

Solutions like CEPH, GlusterFS, or OpenEBS, seems to not be good because it will replicate data on multiple disks while the NAS already doing that.

I've tried targetd which is doing what I need, but I can't attach a same volume to multiple containers so I can't use that and this is not very proven for production. It also seems that NFS provisioner is not suitable for production.

I only need something that use one disk to create subdisks (like LVM) asked by the k8s, and the attach them to pods as block storage or other.

Does this solution exists? Is there any people in the same usecase than me ?

Hope my issue is understandable and you want to help me.. Regards

  • just to confirm, are you running you cluster on premise ? – A_Suh Apr 15 '19 at 10:47
  • Yes @A_Suh, I forgot to mention that (sorry). It runs on CentOS 7 physical servers and deployed with ansible. – sgrunt Apr 15 '19 at 11:32
  • So you need to create a Persistent Volume (kubernetes.io/docs/concepts/storage/persistent-volumes) that will store data on your two NAS, right? PVs support NFS, iSCSI etc. Did you try creating PV in your cluster and attaching it to pods using persistentVolumeClaim volume type (kubernetes.io/docs/concepts/storage/#persistentvolumeclaim)? – Maciek Apr 23 '19 at 14:54
  • Yes I have @Maciek :) but it doesn't provide dynamic provisioning. So I have to make volume on the NAS for every PV and then I can't automate pods deployment. So I need dynamic provisioning – sgrunt Apr 23 '19 at 17:47

So you need a StograClass that would provide dynamic provisioning based on your NFS/iSCSI NAS setup. Unfortunately, out of the box Kubernetes doesn't provide a solution like that. As you can see on that table NFS and iSCSI don't have an Internal Provisioner listed and that's what you'd want to use.

However, there are third party solutions you might want to investigate. You may want to take a look at nfs-client for example, as you already have NFS set up and configured.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.