Minikube外部注册表无法提取图像redis-ha

时间:2018-03-21 19:08:21

标签: docker kubernetes minikube redis-ha quay.io

致力于在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)

2 个答案:

答案 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

现在一切都在拉动......