nfs-subdir-external-provisioner: unable to successfully deploy PVC on raspberry pi
Hi,
I am trying to deploy nextcloud on k3s and store my data on a nfs-share.
I already setup the k3s on a (for now) single raspberry pi via k3s-ansible which worked perfectly fine. I tried to setup a PV+PVC for a NFS share and eventually found that I should use this nfs provisioner.
I have
- setup a NFS mount (verified via showmount -e IP) and was able to mount it manually via mount.nfs and mount -t nfs
- cloned this repository
- modified deploy/helm/values.yaml (nfs.server, nfs.path, repository: quay.io/external_storage/nfs-client-provisioner-arm)
- also changed kubeVersion to “>=1.9.0 <1.21.0” in deploy/helm/Chart.yaml because k3s version is “v1.20.0+k3s2”
- deployed the helm chart in a namespace “nfs”
The deployment seems to be working fine. When I try to deploy deploy/test-claim.yml all I get is
Normal ExternalProvisioning 4m33s (x263 over 69m) persistentvolume-controller waiting for a volume to be created, either by external provisioner “fuseim.pri/ifs” or manually created by system administrator
$ kubectl describe deployment nfs-subdir-external-provisioner -n nfs
Name: nfs-subdir-external-provisioner
Namespace: nfs
CreationTimestamp: Wed, 13 Jan 2021 19:31:07 +0100
Labels: app=nfs-subdir-external-provisioner
app.kubernetes.io/managed-by=Helm
chart=nfs-subdir-external-provisioner-3.0.0
heritage=Helm
release=nfs-subdir-external-provisioner
Annotations: deployment.kubernetes.io/revision: 1
meta.helm.sh/release-name: nfs-subdir-external-provisioner
meta.helm.sh/release-namespace: nfs
Selector: app=nfs-subdir-external-provisioner,release=nfs-subdir-external-provisioner
Replicas: 1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType: Recreate
MinReadySeconds: 0
Pod Template:
Labels: app=nfs-subdir-external-provisioner
release=nfs-subdir-external-provisioner
Service Account: nfs-subdir-external-provisioner
Containers:
nfs-subdir-external-provisioner:
Image: quay.io/external_storage/nfs-client-provisioner-arm:v3.1.0-k8s1.11
Port: <none>
Host Port: <none>
Environment:
PROVISIONER_NAME: cluster.local/nfs-subdir-external-provisioner
NFS_SERVER: 192.168.0.227
NFS_PATH: /mnt/data
Mounts:
/persistentvolumes from nfs-subdir-external-provisioner-root (rw)
Volumes:
nfs-subdir-external-provisioner-root:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: 192.168.0.227
Path: /mnt/data
ReadOnly: false
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nfs-subdir-external-provisioner-598475ff9b (1/1 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 65s deployment-controller Scaled up replica set nfs-subdir-external-provisioner-598475ff9b to 1
$ kubectl describe pvc test-claim -n nfs
Name: test-claim
Namespace: nfs
StorageClass: nfs-client
Status: Pending
Volume:
Labels: <none>
Annotations: volume.beta.kubernetes.io/storage-provisioner: cluster.local/nfs-subdir-external-provisioner
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Used By: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ExternalProvisioning 7s (x3 over 12s) persistentvolume-controller waiting for a volume to be created, either by external provisioner "cluster.local/nfs-subdir-external-provisioner" or manually created by system administrator
I tried to deploy without helm but still the same issue
Thank you for your help and sorry if I am missing any information. Quite new to the k8s universe 😉
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 20 (6 by maintainers)
I had the same issue with not being able to run the Docker image on a Raspberry Pi 4. For anyone else stuck on this, this is how I was able to build the 32-bit ARM image in a clone of this repository:
@kmova for a permanent solution I would also like to ask to extend
BUILD_PLATFORMS
withlinux arm
.Thanks @hamid-elaosta. I used the multi-arch build in this fork https://github.com/groundhog2k/nfs-subdir-external-provisioner to check and it worked.
I have a similar problem setup as @bohnejoe in that I want to use the nfs storage provisioner for persistence in my k3s Raspberry Pi 4 cluster. When I deploy the provisioner on k3s with
gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:arm64-linux-v4.0.0
I get anexec format error
. It might be due to the fact that most OS for the Raspberry Pi 4 are still 32-bit, including Raspbian OS Buster that I am using. Would be it be possible to add arm7 linux toBUILD_PLATFORMS
?@kmova arm7 is 32bit, what does it take to add it to the
BUILD_PLATFORMS
and multi-arch image?