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

alp*_*tel 14 docker kubernetes minikube apple-m1

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

但是,如何在本地 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
Run Code Online (Sandbox Code Playgroud)

我如何告诉 Minikube 在其部署中产生与--platform linux/amd64flag 相同的效果?

Mic*_*eid 1

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

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

每当使用带有标签的图像时,两者kindminikube设置为imagePullPolicy,因此手动设置它以强制节点使用已下载的图像。AlwayslatestNever