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

У меня есть созданный образ докера, который работает на докере, как этот (локальный докер) n ...

docker run -p 4000:8080 jrg/hello-kerb

Теперь я пытаюсь запустить его как стручок Kubernetes. Для этого я создаю развертывание ...

kubectl create deployment hello-kerb --image=jrg/hello-kerb

Затем я запускаю kubectl get deployments, но новое развертывание становится недоступным ...

NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
hello-kerb   1         1         1            0           17s

Я использовал этот сайт как инструкция . Это показывает, что статус должен быть доступен ...

NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
hello-node   1         1         1            1           1m

Чего мне не хватает? Почему развертывание недоступно?

UPDATE

$ kubectl get pod
NAME                          READY   STATUS             RESTARTS   AGE
hello-kerb-6f8f84b7d6-r7wk7   0/1     ImagePullBackOff   0          12s

Ответы [ 2 ]

2 голосов
/ 11 мая 2019

Если вы используете локальный образ (из сборки docker), он напрямую доступен демону docker и может быть выполнен. Если вы используете удаленного демона, например в кластере kubernetes он попытается получить образ из реестра по умолчанию, поскольку этот образ недоступен локально. Обычно это dockerhub. Я проверил https://hub.docker.com/u/jrg/ и, похоже, репозитория нет, и поэтому нет jrg / hello-curb

Так как вы можете решить это? При использовании minikube вы можете создать (и предоставить) образ с помощью демона docker, предоставляемого minikube.

eval $(minikube docker-env)
docker build -t jrg/hello-kerb .

Вы также можете предоставить образ в реестре, который доступен из среды выполнения вашего контейнера в кластере kubernetes, например dockerhub.

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

Я решил это с помощью kubectl edit deployment hello-kerb, затем нашел «imagePullPolicy» (:/PullPolicy).Наконец я изменил значение с «Всегда» на «Никогда».После сохранения, когда я запускаю kubectl get pod, он показывает ...

NAME                          READY   STATUS    RESTARTS   AGE
hello-kerb-6f744b6cc5-x6dw6   1/1     Running   0          6m 

И я могу получить к нему доступ.

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