Поделиться через


Настройка встроенного реестра контейнеров для Azure Red Hat OpenShift 4

Azure Red Hat OpenShift предоставляет интегрированный реестр образов контейнеров, который добавляет возможность автоматической подготовки новых репозиториев образов по запросу. Это предоставляет пользователям встроенное расположение для сборок приложений, куда можно отправлять полученные образы.

В этой статье вы настроите встроенный реестр образов контейнеров для кластера Azure Red Hat OpenShift (ARO) 4. Вы узнаете, как:

  • Авторизация удостоверения для доступа к реестру
  • Доступ к встроенному реестру образов контейнеров из кластера
  • Доступ к встроенному реестру образов контейнеров извне кластера

Подготовка к работе

В этой статье предполагается, что у вас есть существующий кластер ARO (см. раздел "Создание кластера Azure Red Hat OpenShift 4"). Если вы хотите настроить интеграцию Microsoft Entra, обязательно создайте кластер с аргументом --pull-secretaz aro create.

Примечание.

Настройка проверки подлинности Microsoft Entra для кластера — самый простой способ взаимодействия с внутренним реестром за пределами кластера.

После создания кластера подключитесь к кластеру, выполнив проверку подлинности от имени kubeadmin пользователя.

Настройка проверки подлинности в реестре

Для любого удостоверения (пользователя кластера, пользователя Microsoft Entra или ServiceAccount) для доступа к внутреннему реестру необходимо предоставить разрешения внутри кластера:

Как kubeadmin, выполните следующие команды:

# Note: replace "<user>" with the identity you need to access the registry
oc policy add-role-to-user -n openshift-image-registry registry-viewer <user>
oc policy add-role-to-user -n openshift-image-registry registry-editor <user>

Примечание.

Для пользователей кластера и пользователей Microsoft Entra это будет то же имя, что и для проверки подлинности в кластере. Для OpenShift ServiceAccounts отформатируйте имя как system:serviceaccount:<project>:<name>

Доступ к реестру

Теперь, когда вы настроили проверку подлинности для реестра, вы можете взаимодействовать с ним:

Из кластера

Если вам нужно получить доступ к реестру из кластера (например, вы используете платформу CI/CD в качестве модулей Pod, которые будут отправлять и вытягивать образы в реестр), вы можете получить доступ к реестру через службу ClusterIP по полному доменному имени image-registry.openshift-image-registry.svc.cluster.local:5000, которое доступно всем модулям Pod в кластере.

Вне кластера

Если рабочие процессы требуют доступа к внутреннему реестру за пределами кластера (например, вы хотите отправить или извлечь образы с ноутбука разработчика, внешней платформы CI/CD и /или другого кластера ARO), вам потребуется выполнить несколько дополнительных действий:

Как kubeadminи, выполните следующие команды, чтобы предоставить встроенный реестр за пределами кластера с помощью маршрута:

oc patch config.imageregistry.operator.openshift.io/cluster --patch='{"spec":{"defaultRoute":true}}' --type=merge
oc patch config.imageregistry.operator.openshift.io/cluster --patch='[{"op": "add", "path": "/spec/disableRedirect", "value": true}]' --type=json

Затем вы можете найти полное доменное имя реестра, доступное для внешних запросов:

Как, выполните следующую kubeadminкоманду:

oc get route -n openshift-image-registry default-route --template='{{ .spec.host }}'

Следующие шаги

Теперь, когда встроенный реестр образов контейнеров настроен, можно начать развертывание приложения в OpenShift. Для приложений Java см. статью Развертывание Java-приложений с помощью Open Liberty/WebSphere Liberty в кластере Azure Red Hat OpenShift 4.