Внутренний реестр докеров OpenShift недоступен

Я пытаюсь подключиться к внутреннему реестру докеров кластера openshift с помощью

      /bin/docker login -u user -p password` `oc get svc -n default | grep docker-registry `:5000

Получение следующего сообщения:

      Error response from daemon: Get https://VirtualIP:5000: cannotconnect

1 ответ

Я предполагаю, что вы используете OpenShift версии 4. Возможно, это может быть даже в форме контейнеров CodeReady (тип среды разработки OpenShift 4 с одним узлом).

OpenShift предоставит доступ к своему реестру контейнеров по следующему URL-адресу:

https://default-route-openshift-image-registry.apps-crc.testing:5000/

(где apps-crc.testing — это домен приложения, которое есть в вашем развертывании). Обратите внимание, что это ВНЕШНИЙ доступ к хранилищу изображений; внутри вы захотите обратиться к изображению (в данном случае к изображению «shiny-proxy:latest» в проекте «shiny») следующим образом:

image-registry.openshift-image-registry.svc:5000/shiny/shiny-proxy:latest

Для контейнеров CodeReady вы можете увидеть:https://code-ready.github.io/crc/#accessing-the-internal-openshift-registry_gsg .

Это также поможет вам решить проблемы с сертификатами (например, самозаверяющими сертификатами).

Обратите особое внимание на то, как вы входите в систему; вы не используете пароль, а вместо этого используете токен, который можно получить с помощью «oc whoami -t».

      PS> docker login -u developer -p $(oc whoami -t) `
https://default-route-openshift-image-registry.apps-crc.testing:5000/

Особое примечание для контейнеров CodeReady и режима vsock.

Если вы используете режим «vsock». Вам нужно будет перенаправиться в службу регистрации изображений (от имени kubeadmin; пользователь-разработчик не будет иметь доступа). Кроме того, демон Docker должен иметь возможность подключаться к этому перенаправленному порту, а 127.0.0.1 не будет работать, поэтому разрешите переадресацию порта для подключения к 0.0.0.0 (обратите внимание на потенциальную проблему доступа) и подключите Docker. в «host.docker.internal».

      PS> oc -n openshift-image-registry port-forward service/image-registry 5000:5000 --address 0.0.0.0

Вам необходимо настроить небезопасные реестры Docker Daemon, чтобы добавить host.docker.internal:

      {
  "registry-mirrors": [],
  "insecure-registries": [
    "host.docker.internal:5000"
  ],
  "debug": false,
  "experimental": false,
  "features": {
    "buildkit": true
  }
}
      PS> docker login -u developer -p $(oc whoami -t) host.docker.internal:5000

Конечно, имя «host.docker.internal» вводит в заблуждение, поскольку это внутренний реестр OpenShift. Давайте пометим и отправим изображение в OpenShift.

      PS> docker tag openshift-r-shiny:latest host.docker.internal:5000/cameron-rshiny/openshift-r-shiny:latest
docker push host.docker.internal:5000/cameron-rshiny/openshift-r-shiny:latest

Проверять:

      PS> oc -n cameron-rshiny get is
NAME                IMAGE REPOSITORY                                                                           TAGS     UPDATED
openshift-r-shiny   default-route-openshift-image-registry.apps-crc.testing/cameron-rshiny/openshift-r-shiny   latest   About a minute ago

См. также [Epic] демон GA.

Другие вопросы по тегам