ImagePullBackOff与Minikube的本地存储库
我正在尝试使用minikube和kitematic在本地机器上testingkubernetes。 但是,kubernetes无法在本地存储库(ImagePullBackOff)中提取图像。
我试图解决这个问题: 使用Minikube时,无法从私有仓库中拖出Docker镜像
但我没有/etc/init.d/docker,我认为这是因为运动? (我在OS X上)
有任何想法吗 ?
谢谢
编辑:
我安装了https://github.com/docker/docker-registry ,并且
docker tag local-image-build localhost:5000/local-image-build docker push localhost:5000/local-image-build
我的kubernetes yaml包含:
spec: containers: - name: backend-nginx image: localhost:5000/local-image-build:latest imagePullPolicy: Always
但它仍然无法正常工作…日志:
Error syncing pod, skipping: failed to "StartContainer" for "backend-nginx" with ErrImagePull: "Error while pulling image: Get http://127.0.0.1:5000/v1/repositories/local-image-build/images: dial tcp 127.0.0.1:5000: getsockopt: connection refused
编辑2:
我不知道自己是否走上了正轨,但是我发现:
http://kubernetes.io/docs/user-guide/images/
但我不知道我的DOCKER_USER是什么…
kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
编辑3
现在我上了我的吊舱:
Failed to pull image "local-image-build:latest": Error: image library/local-image-build not found Error syncing pod, skipping: failed to "StartContainer" for "backend-nginx" with ErrImagePull: "Error: image library/local-image-build not found"
帮助我我疯了。
编辑4
Error syncing pod, skipping: failed to "StartContainer" for "backend-nginx" with ErrImagePull: "Error response from daemon: Get https://192.168.99.101:5000/v1/_ping: tls: oversized record received with length 20527"
我补充说:
EXTRA_ARGS=' --label provider=virtualbox --insecure-registry=192.168.99.101:5000
到我的dockerconfiguration,但它仍然是行不通的,相同的消息….
顺便说一下,我改变了我的yaml:
spec: containers: - name: backend-nginx image: 192.168.99.101:5000/local-image-build:latest imagePullPolicy: Always
我运行我的registry就像这样:
docker run -d -p 5000:5000 --restart=always --name myregistry registry:2
我想我是这样做的
minikube start --vm-driver="virtualbox" --insecure-registry="$REG_IP":80
而不是仅仅
minikube start
资源
添加–insecure-registry =“$ REG_IP”:80似乎不适合我。
我必须使用wlredeye的答案在使用Minikube工作时 , 无法从私有仓库中拖出docker镜像 :
对于httpregistry,这个步骤适用于我:
- minikube ssh
- 编辑/ var / lib / boot2docker / profile并添加到$ EXTRA_ARGS
--insecure-registry 192.168.99.1(your local machine's IP):5000
- 重启docker守护进程
sudo /etc/init.d/docker restart
- validation您可以访问dockerregistry
curl -s -S http://192.168.99.1/v2/_catalog
这是minikube版本:v0.14.0
首先你需要启动一个本地registry,似乎你已经完成了。
docker run -d -p 5000:5000 --restart=always --name myregistry registry:2
你可以通过ifconfig
检查你的minikube IP
应该有输出(minikube开始使用virtualbox作为VMdriver后)看起来像:
vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
inet addr:192.168.99.1 Bcast:192.168.99.255 Mask:255.255.255.0 inet6 addr: fe80::800:27ff:fe00:0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:515 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:86256 (86.2 KB)
运用
minikube start --insecure-registry=192.168.99.1:5000
你可以真正检查你是否可以简单地通过(在minikube中)
docker pull 192.168.99.1:5000/your_own_repo/your_own_images
希望这可能有帮助。