我有一个已创建的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/