OpenShift docker pu sh 500 внутренняя ошибка сервера - PullRequest
0 голосов
/ 29 февраля 2020

Я использую версию OpenShift 3.11 и следую инструкциям из этой документации: https://docs.openshift.com/container-platform/3.11/install_config/registry/accessing_registry.html

Однако всякий раз, когда я запускаю указанную ниже команду, я вижу ошибку:

docker push 172.30.<num>.<num>:5000/project/image
received unexpected HTTP status: 500 Internal Server Error

Я также проверил вывод журналов реестра:

oc logs dc/docker-registry

Это выливает огромный вывод, но вот что привлекло мое внимание:

imagestreams.image.openshift.io <> is forbidden: User \"system:serviceaccount:registry\" cannot get imagestreams.image.openshift.io in the namespace \"<>\": no RBAC policy matched"

Поэтому я не понимаю, почему Я получаю эту проблему разрешения. Согласно документации, это должно сработать, и не должно быть необходимости в потоке изображений, и я должен иметь возможность помещать sh docker изображений непосредственно в реестр. У кого-нибудь есть идея, что я здесь упускаю?

РЕДАКТИРОВАТЬ:

Ниже приведен полный список команд для всей установки:

oc cluster up <params>
Created a new project as a test setup and that works.
htpasswd -c /etc/origin/openshift-htpasswd <username> (I use the same <username> by using which I created the project above.)
oc login -u <username> -p <password>
oc policy add-role-to-user registry-editor <username>
oc adm registry
oc get svc/docker-registry (make note of cluster ip and port)
Modify or create /etc/docker/daemon.json
{
    "insecure-registries" : [ "cluster ip:port" ]
}
systemctl restart docker
Restart cluster and login again using <username>
docker login -u nouser -p $(oc whoami -t) cluster ip:port
docker push cluster ip:port/project/image
This is where I see 500 internal server error.

Cluster ip has the format of 172.30.<num>.<num>:5000

РЕДАКТИРОВАТЬ 2: Когда я создать реестр с помощью приведенной ниже команды, я получаю некоторые ошибки, которые уже существуют, хотя я удаляю его заранее:

oc adm registry (for creating registry)
oc delete dc/docker-registry svc/docker-registry (for deleting registry)

enter image description here

Я действительно удаляю их, так как я повторял эти шаги несколько раз, чтобы выяснить причину этой проблемы. Как вы думаете, этот вывод выглядит хлопотно?

РЕДАКТИРОВАТЬ 3: Больше информации из сообщения об ошибке:

findBlobStore: невозможно получить доступ к imagestream myproject / busybox: ImageStream: запрещено: существует: не удалось получить поток изображений myproject / busybox: ImageStreamGetter: запрещено: myproject / busybox: imagestreams.image.openshift.io \ "busybox \" запрещено: пользователь \ "system: serviceaccount: myproject: registry \" не может получить imagestreams.image.openshift .io в пространстве имен \ "myproject \": политика RBA C не соответствует "

1 Ответ

0 голосов
/ 29 февраля 2020

Вы вошли во внутренний docker-registry, используя правильный аккаунт до docker push? Эта учетная запись должна иметь разрешение pu sh или создавать изображения для цели project, которую вы указали "172.30 ..: 5000 / project / image".

$ oc login -u username -p password
$ oc whoami -t
...TOKEN...

$ docker login -u unused -p ...TOKEN... 172.30.<num>.<num>:5000
$ docker push 172.30.<num>.<num>:5000/project/image:tag

Надеюсь, это поможет вам.

...