"Failed to inspect image XXX: Id or size of image XXX is not set"?

"Failed to inspect image XXX: Id or size of image XXX is not set"?

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

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 上的全部 运行ning。使用 AUR 中的 minikube 0.18.0-1kubectl-bin 1.6.1-1,社区存储库中的 docker 1:17.04.0-1,以及 latest 中的 docker registry 容器(2.6.1 在撰写本文时)。 fabric8io kubernetes-client 的版本为 2.2.13

我检查过:

我还没有:

检查 minikube dashboard 时,部署、副本集和 Pods 部分都有相同的错误:

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"

并且 pod 日志永久停留在

container "YYY" in pod "YYY" is waiting to start: ImageInspectError

查找提供的错误消息将我引导至 https://github.com/kubernetes/minikube/issues/947,但这不是同一个问题,因为 kube-dns 正在按预期工作。这是唯一相关的搜索结果,因为出现的其他结果是

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

Kubernetes 1.6 可能与最新的 Docker 版本(17.xx.xx)不兼容,您能否降低 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 安装

在删除任何东西之前,你可以尝试minikube delete(如果里面没有重要的东西,或者备份的东西)和minikube start,这样你就可以一起删除你以前的集群,然后试着拉你的形象再次。它为我做到了。