I built a docker image with platform tags linux/amd64/v3 and linux/amd64/v4 for an app that uses Intel AVX2 instructions. The app relies on AVX2 instructions and does not run on amd64/v1 and amd64/v2.
The app/image runs fine with docker and is pushed to docker.io with both platform tags (docker hub confirms that the image has the two versions for OS/ARCH).
When I apply a deployment in k8s with this image the pod has status Waiting reason ImagePullBackOff and the message:
Failed to pull image “xxuser/privtest:latest”: rpc error: code = NotFound desc = failed to pull and unpack image “docker.io/xxuser/privtest:latest”: no match for platform in manifest: not found
Everything is done on a workstation which has an amd64/v4 CPU and sufficient resources.
I have never before tried to run an app with AVX2 on k8s and tried to find information to configure the node to accept these images or to change the manifest for the linux/amd64/v3 platform but could not find anything.
So the question is: what to do to make k8s pull and unpack the image ?
Cluster information:
Kubernetes version: 1.30.5
Cloud being used: bare metal
Installation method: normal steps but with taint removal to have a single node cluster
Host OS: Ubuntu 24.04.1
CNI and version: calico 3.28.2
CRI and version: containerd 1.7.22