正在将本地docker不安全docker注册表中的图像拉入Kubernetes



无法从Minikube内的本地docker不安全注册表存储库中提取图像

我正在运行Docker工具箱v1.12.2,使用安装在Windows 7下的Oracle VirtualBox 5.1.6上的Linux VM(Upstart)。

我已经创建了一个docker映像,并将其推送(标记,然后推送)到本地不安全的docker注册表v2中,该注册表在192.168.99.100:5000/image/name上运行。
docker run -d -p 5000:5000 --restart=always --name registry registry:2
在VM内部,在/var/lib/boot2docker/profile上,我已经将标志
--insecure-registry 192.168.99.100:5000添加到EXTRA_ARGS中。

docker push&来自localhost:5000/image/namedocker pull在Docker(VM)内工作良好

_catalog可以从Postman:GET http:192.168.99.100:5000/v2/_catalog访问,我可以在注册表中获取图像。

我用以下命令启动Minikube v0.15.0虚拟机:

minikube start --insecure-registry=192.168.99.100:5000

我隶属于PROXY公司,所以我在命令行(CMD)中添加了代理:
set HTTP/HTTPS_PROXY=my.company.proxy:8080set NO_PROXY={minikube ip}
然后Kubernetes仪表板开始为我工作。

现在,对于真正的问题,当运行命令时:
kubectl run image-name --image=192.168.99.100:5000/image/name --port=9999从我当地的docker注册表中提取图像到Kubernetes中

部署"镜像名称"创建

但在Kubernetes>Deployments中,我收到了以下错误:

无法提取映像"192.168.99.109:5000/image/name":192.168.99.100:5000/iimage/name:latest的映像提取失败,这可能是因为此请求没有凭据。详细信息:(后台进程的错误响应:Gethttps://192.168.99.100:5000/v1/_ping:隧道或SSL禁止)

有人能帮我解决隧道或SSL禁止的错误吗,这让我疯了,我已经尝试了很多解决方案来配置——在docker、Kubernetes或运行dokcer注册表时的insecrue registery。

顺便问一下,为什么它指的是v1/_ping?我使用的是docker注册表v2。

minikube似乎看不到注册表正在运行的同一网络。你能试着运行minikube ssh,然后为目录运行curl吗?

此外,作为一种替代方案,您可以运行eval(minikube docker-env),然后将本地docker客户端设置为使用minikube中的docker服务器。

因此,例如,如果您构建了一个用myimage/foo标记的映像,它会构建该映像并将其放在minikube docker主机上,因此当您部署该映像时,它不需要被拉取。

最新更新