致力于在Minikube中设置开发环境并遇到从https://quay.io/v2/
注册表中提取图像的问题。
我已经执行了命令:
eval $(minikube docker-env)
。
这使我可以在Minikube中构建我的本地Dockerfile
,并且它可以很好地完成这项工作,部署可以很好地处理本地图像。
然后我用helm来安装
helm install stable/mssql-linux
。
哪个正常,其图片指向此microsoft/mssql-server-linux:2017-CU3
HERE
我也在使用redis-ha并安装如下:
helm install stable/redis-ha --set="rbac.create=false"
rbac.create=false
似乎允许它在Minikube中安装而不会导致各种问题。但是,尽管创建了部署和服务......部署最终会因为无法提取图像而失败。
我收到以下错误:
Failed to pull image "quay.io/smile/redis:4.0.8r0": rpc error: code = Unknown desc = Error response from daemon: Get https://quay.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
部署指向此registry图片:quay.io/smile/redis:4.0.8r0
我几乎在任何地方都可以更改DNS 8.8.8.8
,因为它似乎无法解析网址。它也可能只是我需要在某个地方添加注册表?我觉得它的注册表特定,因为Minikube docker守护程序似乎能够从docker hub
但不是quay.io
。
如果我使用未运行eval $(minikube docker-env)
的终端并在我的主机上使用docker守护程序,我可以将quay.io/smile/redis:4.0.8r0
图像拉得很好... ssh进入minikube并尝试它不能拉
Minikube版
minikube version: v0.25.0
适用于Mac的Docker
Version 17.12.0-ce-mac55 (23011)
答案 0 :(得分:0)
因为它似乎无法解析网址
当错误清楚地表明它有Client.Timeout exceeded while awaiting headers
时,您会相信什么?它将注册表解析为IP地址,甚至显然打开了与其认为是注册管理机构的IP和端口的网络连接。但在那之后,minikube中的网络堆栈实际上并没有允许流量输出。观察到错误不是DNS,并且没有连接被拒绝,连接超时了。这几乎总是一种防火墙式的行为。
这非常非常像企业HTTP代理,因为你的机器可以与互联网进行交互但minikube不能。
有很多可以通过的故障排除步骤,但是,如果您对快速获胜感兴趣,可以从工作的主机上运行docker save quay.io/smile/redis:4.0.8r0 | ssh-into-minikube "docker load"
并像对待空气一样对待minikube
答案 1 :(得分:0)
我不知道其根本原因是什么......也许Minikube只是脆弱但最终结束了:
删除minikube
rm -rf ~/.minikube
再次开始跑步
minikube start --vm-driver=hyperkit
重新启动helm init
现在一切都在拉动......