8

I am using an Apple M1, writing a Kubernetes YAML file to pull and deploy the image confluentinc/cp-zookeeper:6.2.4 the problem is, I cannot pull the image due to the difference in CPU architecture

Failed to pull image "confluentinc/cp-zookeeper:6.2.4": rpc error: code = Unknown desc = no matching manifest for linux/arm64/v8 in the manifest list entries

When using docker-compose, I can just specify the tag platform: linux/x86_64 and everything goes as normal, but I'm not sure how to do this for K8S, I have tried to set the environment variable DOCKER_DEFAULT_PLATFORM as well but it's not working either.

I'm using Docker-Desktop's built in Kubernetes

Wibu
  • 83
  • 3
  • Which kubernetes type of cluster are you deploying to? (Minkube,kind, deployed with kubeadm?) – Bguess May 04 '22 at 06:37
  • 1
    @bguess I do not recall installing minukube or anything like that, I'm using the Kubernetes cluster that is included in the Docker-Desktop UI (The "Enable Kubernetes" checkbox) – Wibu May 04 '22 at 06:40
  • I'm having the same kind of thing; using Minikube on M1 processor. https://stackoverflow.com/questions/72325482/minikube-to-deploy-linux-amd64-images-on-m1-hardware – alpha_hotel May 20 '22 at 23:13

1 Answers1

0

As I know there is no option for Pods/Deployments to define an architecture. I assume, that Kubernetes will automatically pull the correct image if you point to a Container image context. When you have only single images without an index then you have to work with nodeSelectors or something else and to pin the CPU architecture over the image tag (https://kubernetes.io/docs/concepts/containers/images/#multi-architecture-images-with-image-indexes).

To your given image in your question: In this case, I think, is the issue that confluentinc/cp-zookeeper has a ARM64 image in Docker Hub but no ARM64/v8 image. Now I don't know the internals of Docker on M1. But I am a bit surprised that x86_64 even work on an ARM CPU.

mbaldi
  • 133
  • 1
  • 1
  • 7