docker - 为什么我的Kubernetes部署即使在Docker上运行也注册为不可用?

标签 docker kubernetes

我有一个已创建的Docker镜像,可在像这样的docker上工作(本地docker)n ...

docker run -p 4000:8080 jrg/hello-kerb

现在,我试图将其作为Kubernetes容器运行。为此,我创建了部署...
kubectl create deployment hello-kerb --image=jrg/hello-kerb

然后我运行kubectl get deployments,但是新的部署不可用...
NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
hello-kerb   1         1         1            0           17s

我使用这个网站作为the instructions。它表明状态应该可用...
NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
hello-node   1         1         1            1           1m

我想念什么?为什么部署不可用?

更新
$ kubectl get pod
NAME                          READY   STATUS             RESTARTS   AGE
hello-kerb-6f8f84b7d6-r7wk7   0/1     ImagePullBackOff   0          12s

最佳答案

如果您正在运行本地镜像(来自docker build),则该镜像可直接用于docker守护程序并执行。如果您使用的是远程守护程序,则在kubernetes集群中,由于该镜像在本地不可用,因此它将尝试从默认注册表中获取该镜像。这通常是dockerhub。我检查了https://hub.docker.com/u/jrg/,似乎没有存储库,因此没有jrg / hello-kerb

那么如何解决呢?使用minikube时,您可以使用minikube提供的docker守护程序构建(并提供)镜像。

eval $(minikube docker-env)
docker build -t jrg/hello-kerb .

您还可以在kubernetes集群中的容器运行时可访问的注册表处提供镜像,例如dockerhub。

关于docker - 为什么我的Kubernetes部署即使在Docker上运行也注册为不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56091320/

相关文章:

mongodb - 无法验证kubernetes中部署的Mongodb

amazon-web-services - "No basic auth credentials"在 EC2 实例上使用 IAM 角色

docker - 如何在Azure Machine Learning Workbench中使用Pyodbc

android - 无法在 Docker 容器中启动 Android 模拟器 x86_64(在 VM 中)

Kubernetes top vs Linux top

azure - 为什么我的 k8s Nginx 入口 Controller 提供两个证书(其中之一是 Kubernetes 假证书)?

node.js - 让 Docker 镜像和 Docker-Compose 文件正常工作

docker - Docker CLI、Podman 和其他类似工具可以共享镜像的本地存储吗?

kubernetes - 从 GCP 删除 Kubernetes 集群失败

kubernetes - 有没有办法使用 Kustomize 添加新资源(而不是覆盖它们)?