我有一个名为docker-hello-world的docker镜像 - 它所做的就是使用JRE将Hello World打印到日志中。经过测试,它可以正常工作。
然后,我将图像导入Kubernetes Docker并运行 - 仍然没有问题。
docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-hello-world latest 9a161d166742 20 hours ago 83.17 MB
kubectl run docker-hello-world --image=docker-hello-world:latest
部署到Kubernetes时出现问题 - 我尝试了图像ID,但我无法理解为什么它找不到图像。它表示部署已创建。
kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
docker-hello-world 1 1 1 0 24s
kubectl get pods
NAME READY STATUS RESTARTS AGE
docker-hello-world-67c745cff4-sv77d 0/1 ErrImagePull 0 43s
日志:
kubectl logs docker-hello-world-67c745cff4-sv77d
Error from server (BadRequest): container "docker-hello-world" in pod "docker-hello-world-67c745cff4-sv77d" is waiting to start: trying and failing to pull image
我不确定为什么它找不到图像。
但如果我在Minikube内做的话:
docker build -t dummy:v1 ~/eclipse-workspace/HelloWorld/bin/
(我真的不想再生成图像)
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dummy v1 beae3bfd2327 32 seconds ago 83.17 MB
kubectl run --image=dummy:v1 dummy
deployment "dummy” created
kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
dummy 1 1 1 0 11s
kubectl get pods
NAME READY STATUS RESTARTS AGE
dummy-8496dd7d84-t4h66 0/1 Completed 4 1m
kubectl logs dummy-8496dd7d84-t4h66
Hello, World
似乎工作正常
答案 0 :(得分:3)
图片print(rats)
的版本标记为docker-hello-world:latest
,表示默认latest
为ImagePullPolicy
(请参阅Always
了解v1.9.x及后)。它将尝试从集线器中提取图像,而不是使用已存在的图像。
一个选项是设置特定标记而不是pkg/apis/core/v1/defaults.go
。