"kubectl get pods", показывающий СТАТУС - ImagePullbackOff - PullRequest
0 голосов
/ 04 июля 2018

Я настраиваю автономный реестр на своем компьютере для хранения файлов образов докера, чтобы тщательно его протестировать, используя minikube (облегченная реализация Kubernetes для локальной разработки).

Хотя я могу успешно извлекать и извлекать репозитории из локального реестра с помощью команд docker push и docker pull , но при попытке запустить модуль локально, сталкиваясь с проблемой ниже:

Ошибка

Failed to pull image "localhost:5000/dev/customer:v1": rpc error: code = Unknown desc
= Error response from daemon: Get http://localhost:5000/v2/: dial tcp 127.0.0.1:5000: getsockopt: connection refused

Вот список событий, которые я заметил, осматривая капсулу.

Pod Events

Type     Reason                 Age                From               Message

----     ------                 ----               ----               -------

Normal   Scheduled              16m                default-scheduler  Successfully assigned custappdeployment-6c8ddcc5d8-2zdfn to minikube

Normal   SuccessfulMountVolume  16m                kubelet, minikube  MountVolume.SetUp succeeded for volume "default-token-s5nlw"

Normal   BackOff                16m (x2 over 16m)  kubelet, minikube  Back-off pulling image "localhost:5000/dev/customer:v1"

Warning  Failed                 16m (x2 over 16m)  kubelet, minikube  Error: ImagePullBackOff

Normal   Pulling                15m (x3 over 16m)  kubelet, minikube  pulling image "localhost:5000/dev/customer:v1"

Warning  Failed                 15m (x3 over 16m)  kubelet, minikube  Failed to pull image "localhost:5000/dev/customer:v1": rpc error: code = Unknown desc
= Error response from daemon: Get http://localhost:5000/v2/: dial tcp 127.0.0.1:5000: getsockopt: connection refused

Warning  Failed                 15m (x3 over 16m)  kubelet, minikube  **Error: ErrImagePull**

Please see below the docker pull command output. 

PS C:\Sunny\Projects\NodeApps\Nodejs-Apps\Customer> docker pull localhost:5000/dev/customer:v1

v1: Pulling from dev/customer
Digest: sha256:edf0b716728b1cc00f7d8eed76fb3bdceadf1a60a46b9e4f80d983a64389e95c
Status: Image is up to date for localhost:5000/dev/customer:v1

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Если вы используете личный реестр Docker, привяжите реестр к 0.0.0.0, чтобы он был доступен с других серверов. Также, если это небезопасный реестр, добавьте этот URL в список небезопасных реестров демона docker.

0 голосов
/ 04 июля 2018

Ну, я бы не ожидал, что ваш localhost будет таким же, как localhost с точки зрения minikube. На самом деле, я бы не ожидал, что ваш локальный хост будет тем же локальным хостом из чего угодно с точки зрения мира кубернетов.

Итак, некоторые практические вещи, которые вы захотите проверить:

  • - это порт 5000, доступный из не вашей машины (это означает, что виртуальная машина minikube может достоверно извлечь данные из порта 5000 на вашей машине)

    этот вопрос, вероятно, имеет некоторое пересечение с точкой, приведенной ниже, потому что ваш реестр вполне может прослушивать один из внутренних адаптеров, но это не то, что знает ваш компьютер, или наоборот

  • может мини-куб разрешить имя хоста, которое представляет ваша машина (поскольку я на самом деле не думаю , вы можете использовать IP-адрес в ссылке на изображение докера); очевидно, что если это предположение неверно, то не стоит беспокоиться об этой части

  • и убедитесь, что docker либо не доверяет CA вашего реестра, либо вы уже загрузили сертификат в миникуб и отскочил docker

Вы всегда можете обмануть, так как minikube - это одна виртуальная машина (а не целый парк узлов) и docker save $the_image_ref | minikube ssh docker load, которая будет полностью обходить тягу (если у вас нет imagePullPolicy: Always, но это легко исправить).

...