Minikube在M1硬件上部署linux/amd64映像



我知道通过在docker run上使用--platform linux/amd64标志可以在Apple的M1处理器上本地运行amd64映像。

但是我如何在本地Minikube集群上部署相同的映像,在相同的M1硬件上运行?

尝试时输出为:

Failed to pull image "registry/image:tag": 
rpc error: code = Unknown desc = no matching manifest for linux/arm64/v8 in the manifest list entries

我如何告诉Minikube在其部署上引起与--platform linux/amd64标志相同的效果?

我遇到了同样的问题。我的解决方案是:

  1. 按照docker pull registry/image:tag --platform linux/amd64的描述在本地拉取图像。
  2. 设置您的容器规范的imagePullPolicyNever,这使得它在本地获取图像,而不是从注册表中提取图像:
spec:
containers:
- name: container-name
image: registry/image:tag
imagePullPolicy: Never  # or IfNotPresent

无论何时使用带有latest标记的图像,kindminikube都将imagePullPolicy设置为Always,因此手动将其设置为Never强制节点使用已经下载的图像。

对于Docker Desktop不确定,但是如果你使用Colima,你可以为lima VM选择arch

一旦你有一个docker引擎在VM中运行,在M1上使用arch x86_64,它将拉amd64映像。

在启动时使用colima start --arch x86_64来使用arch.

你可以在Colima上运行MiniKube,或者直接使用Colima内置的kubernetes集群。

注意:您可能需要使用——runtime容器来使此工作。我有使用默认运行时(docker)的问题

相关内容

最新更新