如何解决无法将图片从不安全的私有注册表中拉入minikube-http:服务器对HTTPS客户端进行了HTTP响应
在Ubuntu 18上,我按照这些说明安装了Docker(19.03.12)
然后完成这些步骤
-
以非root用户身份管理docker https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user
-
使用
systemd
启动 https://docs.docker.com/engine/install/linux-postinstall/#configure-docker-to-start-on-boot
并使用此设置私人Docker注册表
docker run -d -p 5000:5000 -e REGISTRY_DELETE_ENABLED=true --restart=always --name registry registry:2
我还将此添加到了daemon.json
文件
{ "insecure-registries" : ["my.registrydomain.lan:5000"] }
并重新启动docker守护程序
sudo /etc/init.d/docker restart
我检查了docker info
,以确保应用了不安全的注册表设置,并在最后看到了它,所以看起来还可以
Insecure Registries:
my.registrydomain.lan:5000
127.0.0.0/8
在同一台计算机上,我使用此命令启动minikube(1.12.3)
minikube start --driver=docker --memory=3000 --insecure-registry=my.registrydomain.lan:5000
所以一切都运行良好,并且我继续使用kubectl
应用部署,除了当我到达需要从本地注册表中拉出容器的Pod时,我的状态为ErrImagePull
。这是我部署的一部分
spec:
containers:
- name: my-container
image: my.registrydomain.lan:5000/name:1.0.0.9
imagePullPolicy: IfNotPresent
当我描述使用失败的吊舱
kubectl describe pod mypod-8474577f6f-bpmp2
我看到此消息
无法提取映像“ my.registrydomain.lan:5000 / name:1.0.0.9”:rpc 错误:代码=未知desc =来自守护程序的错误响应:获取 https://my.registrydomain.lan:5000/v2/:http:服务器提供了HTTP 对HTTPS客户端的响应
编辑:我忘了提一下,我可以将图像推送到注册表中,而不会通过http从另一台计算机上发出任何问题(计算机是Windows 10,并且我在Windows 10中设置了不安全的注册表选项)守护程序配置)
解决方法
我尝试使用与您提供的设置完全相同的设置重现您的问题,效果很好。图像被顺利拉出。我使用以下设置在debian 9和全新的ubuntu安装中对此进行了测试:
minikube version: v1.12.3
docker version: v19.03.12
k8s version: v1.18.3
ubuntu version: v18
我所做的未解决的问题是在minikube容器主机文件中放置一个条目:
root@minikube:/# cat /etc/hosts
...
10.128.5.6 my.registrydomain.lan
...
以及tag / push命令:
docker tag 4e2eef94cd6b my.registrydomain.lan:5000/name:1.0.0.9
docker push my.registrydomain.lan:5000/name:1.0.0.9
这是豆荚中的描述:
Normal Pulling 8m19s (x5 over 10m) kubelet,minikube Pulling image "my.registrydomain.lan:5000/name:1.0.0.9"
正如评论中所建议的那样,您可能希望检查这种github情况。通过解决您的问题的几个方法:
First用于检查主机文件并在将存储库托管在另一个节点上的情况下正确更新。 Second解决方案与将图像推入存储库有关,这使用户意识到insecure-registries
和docker push
命令都区分大小写。 Third一种是使用systemd控制docker守护程序。
最后,如果这些操作无济于事,我将尝试清除所有设置,卸载docker,清除docker配置,然后重新从头开始。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。