Не удается развернуть модифицированный образ Jenkins в openshift

Я использовал образ «jenkins-1-centos7» для развертывания в моем openshift для запуска проектов на моем образе jenkins. Это успешно сработало, и после многих конфигураций я продублировал новый образ из этого контейнера jenkins. Теперь я хочу использовать этот образ в качестве основы для дальнейшей разработки, но при развертывании модуля на этом образе возникает ошибка «ErrImagePull».

В ходе моих исследований я обнаружил, что openshift необходимо, чтобы образ присутствовал в реестре докеров для успешного развертывания модулей. Я развернул другое приложение для реестров докеров, и теперь, когда я пытаюсь поместить свой обновленный образ в этот реестр докеров, возникает ошибка с сообщением "Требуется аутентификация". Я дал права администратора своему пользователю.

docker push <local-ip>:5000/openshift/<new-updated-image>
The push refers to a repository [<local-ip>:5000/openshift/<new-updated-image>] (len: 1)
c014669e27a0: Preparing
unauthorized: authentication required

Как я могу убедиться, что модифицированный образ успешно развернут?


person Akshaya Khare    schedule 25.07.2016    source источник
comment
Насколько я понимаю, вы строите свой образ Дженкинса. Вставить его в реестр OpenShift, а затем попытаться использовать в OpenShift? Какую команду вы выполняете для аутентификации в реестре докеров OpenShift?   -  person lvthillo    schedule 28.07.2016


Ответы (2)


arrow_upward
1
arrow_downward

Вероятно, этот ответ потребует редактирования, потому что ваша проблема может быть вызвана многими причинами. (Я предполагаю, что вы используете источник OpenShift? (с открытым исходным кодом)). Потому что я вижу образ Centos7 для Дженкинса.

Прежде всего, вам нужно развернуть реестр openshift в проекте по умолчанию.

$ oc project default
$ oadm registry --config=/etc/origin/master/admin.kubeconfig \
    --service-account=registry

Модуль реестра будет развернут. Над реестром будет создана служба (своего рода конечная точка, которая будет функционировать как балансировщик нагрузки над вашими модулями).

IP-адрес этой службы находится в диапазоне 172.30. Вы можете проверить этот IP-адрес в веб-консоли или выполнить (при условии, что вы все еще находитесь в проекте по умолчанию): $ oc get svc

NAME              CLUSTER-IP      EXTERNAL-IP   PORT(S)                   AGE
docker-registry   172.30.22.11   <none>        5000/TCP                  8d
kubernetes        172.30.32.13      <none>        443/TCP,53/UDP,53/TCP     9d
router            172.30.42.42    <none>        80/TCP,443/TCP,1936/TCP   9d

Поэтому вам нужно будет использовать служебный IP-адрес вашего реестра докеров для аутентификации. Вам также понадобится токен:

$ oc whoami -t
D_OPnWLdgEbiKJzvG1fm9dYdX..

Теперь вы можете выполнить вход и нажать изображение:

$ docker login -u admin -e [email protected] \
-p D_OPnWLdgEbiKJzvG1fm9dYdX 172.30.22.11:5000
WARNING: login credentials saved in /root/.docker/config.json
Login Succeeded

$ docker tag myimage:latest 172.30.22.11/my-proj/myimage:latest

$ docker push 172.30.22.11/my-proj/myimage:latest

надеюсь это поможет. Вы можете оставить отзыв об этом ответе и рассказать, работает ли он для вас или с какими новыми проблемами вы столкнулись.

person lvthillo    schedule 28.07.2016
comment
Я использую Openshift Enterprise ... и шаги, которые вы указали, точно такие же, как и я, я развернул модуль реестра, я смог войти в систему, используя токен и IP-адрес реестра, а затем я пометил свой образ. Я получаю ошибку при нажатии на изображение... - person Akshaya Khare; 29.07.2016
comment
в качестве какого пользователя вы нажимаете изображение? у вас есть права на нажатие изображения? (например, у вас есть роль администратора кластера) - person lvthillo; 29.07.2016
comment
Я использовал свой личный идентификатор ‹khare.ak› для отправки изображения: я предоставил права администратора пользователю с помощью следующей команды: oadm policy add-role-to-user admin khare.ak Хотя я решил проблема с использованием локального реестра докеров и развертывание моего приложения с использованием этого локального реестра докеров - person Akshaya Khare; 29.07.2016
comment
Я думаю, вам нужно добавить роль кластера к пользователю. Вы не используете реестр openshift-docker? - person lvthillo; 30.07.2016
comment
хорошо, это может быть проблемой ... Я попробую с этим, на данный момент я удалил реестр openshift-docker и использовал локальный реестр докеров для развертывания своего приложения. Я вернусь к этому через неделю и попробую с реестром openshift-docker, приняв во внимание ваш совет... до тех пор это локальный реестр докеров... - person Akshaya Khare; 30.07.2016

arrow_upward
0
arrow_downward

Все в порядке, только последняя строка получает ошибку аутентификации

докер толчок 172.30.22.11/мой-проект/мойизображение: последний

????

person Rahul Jain    schedule 01.08.2016
comment
Пытались ли вы добавить своему пользователю права администратора добавить кластерную роль-пользователю, как предложил Lorenzvth7 выше? - person Akshaya Khare; 01.08.2016
comment
я добавил себя в качестве администратора: - person Rahul Jain; 11.08.2016