拉取镜像时更改 kubernetes 平台

Wib*_*ibu 10 docker kubernetes apple-m1

我正在使用 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
Run Code Online (Sandbox Code Playgroud)

使用 docker-compose 时,我只需指定标签即可platform: linux/x86_64,一切正常,但我不确定如何为 K8S 执行此操作,我也尝试设置环境变量,DOCKER_DEFAULT_PLATFORM但它也不起作用。

我正在使用 Kubernetes 内置的 Docker-Desktop

mba*_*ldi 0

据我所知,Pod/Deployments 没有定义架构的选项。我假设,如果您指向容器镜像上下文,Kubernetes 将自动拉取正确的镜像。当您只有单个图像而没有索引时,您必须使用nodeSelectors或其他东西,并将CPU架构固定在图像标签上(https://kubernetes.io/docs/concepts/containers/images/#multi-architecture -图像与图像索引)。

对于问题中给定的图像:我认为,在这种情况下,问题confluentinc/cp-zookeeper在于 Docker Hub 中有 ARM64 图像,但没有 ARM64/v8 图像。现在我不知道M1上Docker的内部结构。但令我有点惊讶的是 x86_64 甚至可以在 ARM CPU 上运行。