我对Kubernetes非常新,并且之前已经使用过Docker。 我正在尝试实现以下内容:
- 启动Minikube
- 使用Kube-ctl从docker hub启动docker镜像
我已经启动了minikube,一切看起来都在运行中,然后我执行了以下命令:
kubectl run nginx --image=nginx(请注意,我在我的机器上没有此镜像,并且我希望k8为我获取它)
现在,当我这样做时,它会启动pod,但状态为 ImagePullBackOff
。 所以我在其上运行了 kubectl describe pod
命令,结果如下所示:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 8m default-scheduler Successfully assigned default/ngix-67c6755c86-qm5mv to minikube
Warning Failed 8m kubelet, minikube Failed to pull image "nginx": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.64.1:53: read udp 192.168.64.2:52133->192.168.64.1:53: read: connection refused
Normal Pulling 8m (x2 over 8m) kubelet, minikube Pulling image "nginx"
Warning Failed 8m (x2 over 8m) kubelet, minikube Error: ErrImagePull
Warning Failed 8m kubelet, minikube Failed to pull image "nginx": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.64.1:53: read udp 192.168.64.2:40073->192.168.64.1:53: read: connection refused
Normal BackOff 8m (x3 over 8m) kubelet, minikube Back-off pulling image "nginx"
Warning Failed 8m (x3 over 8m) kubelet, minikube Error: ImagePullBackOff
然后我搜索了一下,看是否有人遇到过类似的问题,结果发现有些人确实遇到过,并通过重新启动minikube使用以下更多标志来解决它:
minikube start --vm-driver="xhyve" --insecure-registry="$REG_IP":80
当我在Minikube内部执行nslookup
时,可以解析出以下信息:
Server: 10.12.192.22
Address: 10.12.192.22#53
Non-authoritative answer:
hub.docker.com canonical name = elb-default.us-east-1.aws.dckr.io.
elb-default.us-east-1.aws.dckr.io canonical name = us-east-1-elbdefau-1nlhaqqbnj2z8-140214243.us-east-1.elb.amazonaws.com.
Name: us-east-1-elbdefau-1nlhaqqbnj2z8-140214243.us-east-1.elb.amazonaws.com
Address: 52.205.36.130
Name: us-east-1-elbdefau-1nlhaqqbnj2z8-140214243.us-east-1.elb.amazonaws.com
Address: 3.217.62.246
Name: us-east-1-elbdefau-1nlhaqqbnj2z8-140214243.us-east-1.elb.amazonaws.com
Address: 35.169.212.184
仍然没有运气。我在这里做错了什么吗?
docker pull nginx
手动拉取镜像吗?我认为问题在于你无法在你的环境中从 Docker Hub 拉取镜像。请更改另一个可以拉取镜像的注册表。 - wineinlibregistry-1.docker.io
主机名,因为DNS名称服务器配置为使用用于DNS解析的DNS NameServer(192.168.64.1:53
)拒绝连接。如果您执行minikube ssh
,然后运行nslookup hub.docker.com
,会得到什么结果? - Amit Kumar Gupta