【问题标题】:kubernetes cannot pull a public imageKubernetes 无法拉取公共镜像
【发布时间】:2022-08-09 19:12:47
【问题描述】:

Kubernetes 无法拉取公共镜像。像nginx这样的标准镜像下载成功,但是我的宠物项目没有下载。我正在使用 minikube 启动 kubernetes-cluster

apiVersion: apps/v1
kind: Deployment
metadata:
  name: api-gateway-deploumnet
  labels:
    app: api-gateway
spec:
  replicas: 3
  selector:
    matchLabels:
      app: api-gateway
  template:
    metadata:
      labels:
        app: api-gateway
    spec:
      containers:
      - name: api-gateway
        image: creatorsprodhouse/api-gateway:latest
        imagePullPolicy: Always
        ports:
        - containerPort: 80

当我尝试创建部署时,我收到一个错误,即 kubernetes 无法下载我的公共映像。

$ kubectl get pods

结果:

NAME                                      READY   STATUS             RESTARTS   AGE
api-gateway-deploumnet-599c784984-j9mf2   0/1     ImagePullBackOff   0          13m
api-gateway-deploumnet-599c784984-qzklt   0/1     ImagePullBackOff   0          13m
api-gateway-deploumnet-599c784984-csxln   0/1     ImagePullBackOff   0          13m
$ kubectl logs api-gateway-deploumnet-599c784984-csxln 

结果

Error from server (BadRequest): container \"api-gateway\" in pod \"api-gateway-deploumnet-86f6cc5b65-xdx85\" is waiting to start: trying and failing to pull image

可能是什么问题呢?标准图像正在下载,但我的公共图像没有。任何帮助,将不胜感激。

编辑 1

$ api-gateway-deploumnet-599c784984-csxln

结果:

Events:
  Type     Reason     Age                    From               Message
  ----     ------     ----                   ----               -------
  Normal   Scheduled  8m22s                  default-scheduler  Successfully assigned default/api-gateway-deploumnet-849899786d-mq4td to minikube
  Warning  Failed     3m8s                   kubelet            Failed to pull image \"creatorsprodhouse/api-gateway:latest\": rpc error: code = Unknown desc = context deadline exceeded
  Warning  Failed     3m8s                   kubelet            Error: ErrImagePull
  Normal   BackOff    3m7s                   kubelet            Back-off pulling image \"creatorsprodhouse/api-gateway:latest\"
  Warning  Failed     3m7s                   kubelet            Error: ImagePullBackOff
  Normal   Pulling    2m53s (x2 over 8m21s)  kubelet            Pulling image \"creatorsprodhouse/api-gateway:latest\"

编辑 2

如果我尝试下载单独的 docker 映像,那很好

$ docker pull creatorsprodhouse/api-gateway:latest

结果:

Digest: sha256:e664a9dd9025f80a3dd60d157ce1464d4df7d0f8a00538e6a137d44f9f9f12aa
Status: Downloaded newer image for creatorsprodhouse/api-gateway:latest
docker.io/creatorsprodhouse/api-gateway:latest

编辑 3建议重启 minikube 后

$ minikube stop

$ minikube delete --purge

$ minikube start --cni=calico

我开始了豆荚。


Events:
  Type     Reason                  Age    From               Message
  ----     ------                  ----   ----               -------
  Normal   Scheduled               4m28s  default-scheduler  Successfully assigned default/api-gateway-deploumnet-849899786d-bkr28 to minikube
  Warning  FailedCreatePodSandBox  4m27s  kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container \"7e112c92e24199f268ec9c6f3a6db69c2572c0751db9fd57a852d1b9b412e0a1\" network for pod \"api-gateway-deploumnet-849899786d-bkr28\": networkPlugin cni failed to set up pod \"api-gateway-deploumnet-849899786d-bkr28_default\" network: failed to set bridge addr: could not add IP address to \"cni0\": permission denied, failed to clean up sandbox container \"7e112c92e24199f268ec9c6f3a6db69c2572c0751db9fd57a852d1b9b412e0a1\" network for pod \"api-gateway-deploumnet-849899786d-bkr28\": networkPlugin cni failed to teardown pod \"api-gateway-deploumnet-849899786d-bkr28_default\" network: running [/usr/sbin/iptables -t nat -D POSTROUTING -s 10.85.0.34 -j CNI-57e7da7379b524635074e6d0 -m comment --comment name: \"crio\" id: \"7e112c92e24199f268ec9c6f3a6db69c2572c0751db9fd57a852d1b9b412e0a1\" --wait]: exit status 2: iptables v1.8.4 (legacy): Couldn\'t load target `CNI-57e7da7379b524635074e6d0\':No such file or directory

Try `iptables -h\' or \'iptables --help\' for more information.

  • 尝试描述其中一个 pod,它可能会在 Events 部分提供更多详细信息:kubectl describe pod api-gateway-deploumnet-599c784984-csxln
  • 还有一件事要检查——你的节点是基于 arm 的机器吗?
  • 当您在终端中运行arch 时,输出是什么?
  • 谢谢,那不是手臂机器,所以这是消除了一个可能的原因。
  • 看起来你的 minikube 集群不能说话:Failed to pull image \"creatorsprodhouse/api-gateway:latest\": rpc error: code = Unknown desc = context deadline exceeded

标签: kubernetes kubectl minikube


【解决方案1】:

我无法按照建议的方式解决问题。但是,它工作时我用不同的驱动程序运行 minikube

$ minikube start --driver=none

--司机=无意味着集群将在您的主机上运行,​​而不是标准--司机=码头工人它在 docker 中运行集群。

最好用 minikube 运行--司机=码头工人因为它更安全,更容易,但它对我不起作用,因为我无法下载我的图像。就我个人而言,可以使用--司机=无虽然有点危险。

一般来说,如果有人知道问题是什么,请回答我的问题。同时,您可以尝试使用我上面提到的命令在您的主机上运行 minikube 集群。

无论如何,非常感谢您的关注!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-16
    • 2016-08-20
    • 2018-11-16
    • 2023-02-01
    • 1970-01-01
    • 2022-10-31
    • 2023-02-03
    • 1970-01-01
    相关资源
    最近更新 更多