我正在尝试将 Docker 容器部署到本地运行的 minikube 实例,并在尝试拉取(?)图像时收到此错误。该映像存在于自托管的 Docker 注册表中。我正在测试的图像是使用以下 Dockerfile 构建的:
FROM alpine:latest
ENTRYPOINT ["echo"]
我正在使用 fabric8iokubernetes-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
。使用minikube 0.18.0-1
和kubectl-bin 1.6.1-1
来自 AUR、docker 1:17.04.0-1
来自社区存储库和位于(撰写本文时)的 dockerregistry
容器。fabric8io是版本。latest
2.6.1
kubernetes-client
2.2.13
我检查过:
- 自托管注册表通过 HTTPS 正确运行
- 甚至可以拉出图像。
docker pull
并且docker run
在主机和 minikube VM 内部都按预期工作 - 图像运行。往上看
- minikube 中没有任何名称冲突/等。为了安全起见,我在尝试之间删除了部署、副本集和 pod,并重新创建了命名空间。但是,我发现这并没有什么不同,因为我的代码会根据需要清理现有的 Pod/副本集/部署
- 据我所知,DNS 不是问题
我没有:
- 在本地运行 kubernetes(而不是 minikube),因为 kubernetes 的 AUR 包在我的机器上构建需要非常长的时间
- 通读kubernetes源代码,因为我不懂golang
检查minikube dashboard
时,Deployments、Replica Sets 和 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
正如预期的那样。这是唯一相关的搜索结果,因为出现的其他结果是
- 甚至不包含相关错误消息的 Slack 聊天室档案
- kubernetes 源码,对我没有帮助
- kubernetes/minikube #947,同上
老实说,我不确定从这里去哪里。任何意见,将不胜感激。