1

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

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

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

docker push& docker pullfromlocalhost:5000/image/name在 Docker(VM) 中运行良好。

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

我正在使用以下命令启动我的 Minikube v0.15.0 VM:

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/image/name:latest 的图像拉取失败,这可能是因为此请求没有凭据。详细信息:(来自守护程序的错误响应:获取https://192.168.99.100:5000/v1/_ping:隧道或 SSL 禁止)

任何人都可以在这里帮助解决隧道或 SSL Forbidden 错误,这让我发疯,我已经尝试了很多解决方案来配置 --insecrue-registery 在 docker 内部、Kubernetes 内部或运行 dokcer-registry 时。

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

4

1 回答 1

1

似乎 minikube 无法看到您的注册表正在运行的同一网络。您可以尝试运行minikube ssh然后为目录运行 curl 吗?

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

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

于 2017-01-18T03:11:09.357 回答