Докер для Windows Kubernetes pod получает ImagePullBackOff после создания нового развертывания - PullRequest
0 голосов
/ 17 декабря 2018

Я успешно построил образы Docker и запустил их в рое Docker.Когда я пытаюсь создать образ и запустить его с кластером Kubernetes в Docker Desktop:

docker build -t myimage -f myDockerFile .

(приведенное выше успешно создает образ в локальном реестре Docker)

kubectl run myapp --image=myimage:latest

(насколько это возможно)как я понимаю, это то же самое, что и использование команды kubectl create deploy)

Приведенная выше команда успешно создает развертывание, но когда она создает модуль pod, статус модуля всегда отображается:

NAME                                   READY  STATUS            RESTARTS  AGE 
myapp-<a random alphanumeric string>   0/1    ImagePullBackoff  0         <age>

Я не уверен, почему у него возникают проблемы с вытягиванием изображения - возможно, он не знает, где находятся локальные образы докера?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

У меня точно такая же проблема.Сводится к imagePullPolicy:

PC:~$ kubectl explain deployment.spec.template.spec.containers.imagePullPolicy
KIND:     Deployment
VERSION:  extensions/v1beta1

FIELD:    imagePullPolicy <string>

DESCRIPTION:
     Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always
     if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated.
     More info:
     https://kubernetes.io/docs/concepts/containers/images#updating-images

В частности, часть, которая говорит: По умолчанию Всегда, если: последний тег указан .

Это означает, что высоздал локальный образ, но, поскольку вы используете :latest, он будет пытаться найти его в любом удаленном репозитории, который вы настроили (по умолчанию в концентраторе докеров), а не в локальном.Просто измените вашу команду на:

kubectl run myapp --image=myimage:latest --image-pull-policy Never

или

kubectl run myapp --image=myimage:latest --image-pull-policy IfNotPresent
0 голосов
/ 18 декабря 2018

Вы не указали, где размещен myimage:latest, но по существу ImagePullBackoff означает, что я не могу получить изображение, потому что либо:

  • У вас нет настройки сети на виртуальной машине Dockerкоторые могут попасть в ваш реестр Docker (Docker Hub?)
  • myimage:latest не существует в вашем реестре или с ошибкой.
  • myimage:latest требуются учетные данные (вы извлекаете данные из частногореестр).Вы можете взглянуть на this , чтобы настроить учетные данные контейнера в модуле.
...