gpt4 book ai didi

kubernetes - “Failed to inspect image XXX: Id or size of image XXX is not set”?

转载 作者:行者123 更新时间:2023-12-02 12:22:52 27 4
gpt4 key购买 nike

我试图将Docker容器部署到本地运行的minikube实例,并在尝试拉取(?)镜像时收到此错误。该镜像存在于自托管的Docker注册表中。我正在测试的镜像是使用以下Dockerfile构建的:

FROM alpine:latest
ENTRYPOINT ["echo"]

我正在使用fabric8io kubernetes-client库来创建如下部署:
// 'kube' is an instance of io.fabric8.kubernetes.client.KubernetesClient
final Deployment deployment = kube.extensions().deployments()
.createOrReplaceWithNew()
.withNewMetadata()
.withName(name)
.withNamespace("staging")
.endMetadata()
.withNewSpec()
.withReplicas(1)
.withNewTemplate()
.withNewMetadata()
.addToLabels("app", name)
.endMetadata()
.withNewSpec()
.addNewImagePullSecret()
// "regsecret" is the kubectl-created docker secret
.withName("regsecret")
.endImagePullSecret()
.addNewContainer()
.withName(name)
.withImage(imageName + ":latest")
.endContainer()
.endSpec()
.endTemplate()
.endSpec()
.done();

这些都在Arch Linux内核 Linux 4.10.9-1-ARCH x86_64 GNU/Linux上运行。使用AUR中的 minikube 0.18.0-1kubectl-bin 1.6.1-1,社区存储库中的 docker 1:17.04.0-1以及 registry处的docker latest容器(撰写本文时为 2.6.1)。 fabric8io kubernetes-client2.2.13版本。

我检查过:
  • 自托管注册表正在通过HTTPS正确运行
  • 该图像甚至可以被拉出。主机和minikube VM内部的docker pulldocker run完全按预期的方式工作
  • 镜像运行。见上面
  • 在minikube中没有任何名称冲突等。为了安全起见,我删除了两次尝试之间的部署,副本集和Pod,并重新创建了 namespace 。但是,我发现这没有什么不同,因为我的代码会根据需要清理现有的pod /副本集/部署
  • 据我所知
  • ,DNS不是问题

    我还没有:
  • 在本地运行kubernetes(而不是minikube),因为在我的机器上构建kubernetes的AUR包花费了难以置信的长时间。
  • 通读kubernetes源代码,因为我不知道golang

  • 检查 minikube dashboard时,Deployments,副本集和Pod的部分均具有相同的错误:
    Failed to inspect image "registry_domain/XXX/YYY:latest": Id or size of image "registry_domain/XXX/YYY:latest" is not set
    Error syncing pod, skipping: failed to "StartContainer" for "YYY" with ImageInspectError: "Failed to inspect image \"registry_domain/XXX/YYY:latest\": Id or size of image \"registry_domain/XXX/YYY:latest\" is not set"

    并且 pods 日志永久卡在
    container "YYY" in pod "YYY" is waiting to start: ImageInspectError

    查找提供的错误消息将我引导至 https://github.com/kubernetes/minikube/issues/947,但这不是同一个问题,因为 kube-dns可以按预期工作。这是唯一相关的搜索结果,因为出现的其他结果是
  • 甚至没有包含相关错误消息
  • 的Slack聊天室存档
  • kubernetes源,对我没有帮助
  • kubernetes / minikube#947,如上所述

  • 老实说,我不确定从这里去哪里。任何意见,将不胜感激。

    最佳答案

    Kubernetes 1.6可能与最新的Docker版本(17.xx.xx)不兼容,请您降低Docker版本并重试一次。

    如果不确定如何找到Docker,建议在Kubernetes(v1.6)中使用Docker的推荐版本为1.12。在ubuntu或debain中使用它:

    apt-get update && apt-get install -y apt-transport-https
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
    cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
    deb http://apt.kubernetes.io/ kubernetes-xenial main
    EOF
    apt-get update
    apt-get install -y docker.io

    对于centos, ref

    ,在尝试此之前,请先删除当前的Docker安装

    关于kubernetes - “Failed to inspect image XXX: Id or size of image XXX is not set”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43444711/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com