raspbernetes/csi-external-provisioner v2.0.0 crashes on kubernetes v1.19 exec format error.
Trackhe opened this issue ยท 8 comments
Details
run kubernetes on rpi 64bit ubuntu 20.04
exec format error.
i always tried to pull arm64 img but everytime that error. version 1.6.0 is already working.
Issue-Label Bot is automatically applying the label bug
to this issue, with a confidence of 0.93. Please mark this comment with ๐ or ๐ to give our bot feedback!
Links: app homepage, dashboard and code for this bot.
@Trackhe confirming v1.6.0 works however, v2.0.0 doesn't? The Kubernetes version shouldn't matter here; exec format error
is due to architecture not being supported, I'll check if anything has changed.
EDIT: Tested locally and I'm able to reproduce the issue, let me see if we can fix this.
pi@k8s-master-01:~$ sudo docker run raspbernetes/csi-external-provisioner:2.0.0
Unable to find image 'raspbernetes/csi-external-provisioner:2.0.0' locally
2.0.0: Pulling from raspbernetes/csi-external-provisioner
4000adbbc3eb: Pull complete
3c2cba919283: Pull complete
ee75c8894bd0: Pull complete
Digest: sha256:8e462acc2b71b9f68dfc739452c605a7c6107af97d85af7b3ac6a645ebc3727f
Status: Downloaded newer image for raspbernetes/csi-external-provisioner:2.0.0
standard_init_linux.go:211: exec user process caused "exec format error"
Looks like their Makefile now handles the GOOS and GOARCH https://github.com/kubernetes-csi/external-provisioner/blob/c47eb1d05e417168765bbb545696176286800f90/release-tools/build.make#L74 and we need to set this correctly in our implementation - @Trackhe would you like to make this change and contribution? It would be greatly appreciated, otherwise, I can handle it in a few days.
Feel free to use this bugfix branch, tried giving it a quick shot, which didn't work the first time around.
The Problem is now also for csi-attacher and longhorn-csi-plugin (raspbernetes/csi-node-driver-registrar)
i tried the new version (bugfix branch) but same.
@jamesorlakin looks like they changed the upstream Makefiles for the CSI images, it looked like they support buildx
but in the quay repository they were just their standard amd64 interestingly.
I experienced the same issue:
# lscpu
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Vendor ID: ARM
Model: 3
Model name: Cortex-A72
[..]
# podman pull --override-arch=arm64 raspbernetes/csi-external-provisioner:latest
Trying to pull docker.io/raspbernetes/csi-external-provisioner:latest...
Getting image source signatures
Copying blob 4000adbbc3eb skipped: already exists
Copying blob 3c2cba919283 skipped: already exists
Copying blob ee75c8894bd0 [--------------------------------------] 0.0b / 0.0b
Copying config 2861211da3 done
Writing manifest to image destination
Storing signatures
2861211da3d85144baf03ad46a986b76bca655092c5c8999ba5b9524a8db317b
# podman run -it 2861211da3d8
standard_init_linux.go:219: exec user process caused: exec format error
@xunholy strange. I'll likely have time to look at the weekend. My original Ceph and K8s use-case wasn't very stable on 2GB Pis so I haven't touched it in a while!