Получение ErrImagePull при попытке использовать локальный реестр Docker с Kubernetes - PullRequest
0 голосов
/ 11 мая 2019

Сначала я создаю локальный реестр Docker ...

docker run -d -p 5000:5000 --restart=always --name registry registry:2

Затем я нажимаю

docker push localhost:5000/jrg/hello-k8s

Я подтверждаю, что он там есть

$ docker pull localhost:5000/jrg/hello-k8s
Using default tag: latest
latest: Pulling from jrg/hello-k8s
Digest: sha256:c475cb7167208e8f018e54ad81d4b7bbbb9c14875bc1624bcce730edf9afede0
Status: Image is up to date for localhost:5000/jrg/hello-k8s:latest

ЗатемЯ запускаю Minikube

minikube start --insecure-registry=localhost:5000

Но когда я запускаю

kubectl create deployment hello-k8s --image=localhost:5000/jrg/hello-k8s

, я получаю

NAME                          READY   STATUS         RESTARTS   AGE
hello-k8s-75846c4bfc-b7zp7    0/1     ErrImagePull   0          4s

Чего мне не хватает?

Обновление

Я также пытался (при условии, что 5.5.5.5 является IP-адресом для моего беспроводного адаптера (подтверждено доступом в браузере).

Затем я запускаю Minikube

minikube start --insecure-registry=5.5.5.5:5000

Но когда я запускаю

kubectl create deployment hello-k8s --image=5.5.5.5:5000/jrg/hello-k8s

Но я по-прежнему сталкиваюсь с той же проблемой, но через некоторое время она становится ImagePullBackOff

FYI Project (https://github.com/jrgleason/hello-kubernetes/tree/ADD_CASSANDRA)

Ответы [ 2 ]

1 голос
/ 11 мая 2019

Я думаю, что проблема localhost будет ссылаться на сам хост kubernetes, а не на ваш реестр.

Вам нужно сделать так, чтобы реестр был доступен изнутри миникуба. Попробуйте использовать IP-адрес вашего компьютера вместо localhost.

Существует прокси-аддон для миникуба, который позволит вам получить доступ к localhost из миникуба. Я бы предложил установить это как простейшее решение https://github.com/Faithlife/minikube-registry-proxy

Если это не работает, здесь есть руководство по настройке мини-куба с локальным реестром https://blog.hasura.io/sharing-a-local-registry-for-minikube-37c7240d0615/

0 голосов
/ 12 мая 2019

Если вы используете Minikube, вы должны запустить реестр Docker на машине Minikube. Вы можете использовать дополнение реестра Minikube или использовать Docker самостоятельно. Обязательно используйте демон docker с хоста minikube:

eval $(minikube docker-env) 

Затем вы должны перенести изображение в нужный реестр, например, т.е. используя демон удаленного докера для сборки и отправки на «localhost» (в данном случае это виртуальная машина minikube)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...