我正在使用Apple M1,编写Kubernetes YAML文件来拉取和部署映像confluentinc/cp-zookeeper:6.2.4
问题是,由于CPU架构的差异,我无法拉取映像
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
当使用docker-compose时,我可以只指定标签platform: linux/x86_64
,一切正常,但我不确定如何为K8S做到这一点,我也尝试设置环境变量DOCKER_DEFAULT_PLATFORM
,但它也不起作用。
我正在使用Docker-Desktop内置的Kubernetes
1条答案
按热度按时间t5zmwmid1#
据我所知,Pods/Deployments没有定义架构的选项。我假设,如果你指向容器镜像上下文,Kubernetes会自动拉取正确的镜像。当你只有单个图像而没有索引时,你必须使用nodeSelectors或其他东西,并将CPU架构固定在图像标签上(https://kubernetes.io/docs/concepts/containers/images/#multi-architecture-images-with-image-indexes)。
在你的问题中给出的图像:在这种情况下,我认为问题是
confluentinc/cp-zookeeper
在Docker Hub中有一个ARM 64镜像,但没有ARM 64/v8镜像。现在我不知道M1上Docker的内部结构。但我有点惊讶,x86_64甚至可以在ARM CPU上工作。