Configuración del registro de contenedor integrado para la versión 4 de Red Hat OpenShift en Azure

Red Hat OpenShift en Azure proporciona un registro de imágenes de contenedor integrado que agrega la capacidad de aprovisionar automáticamente nuevos repositorios de imágenes a petición. Esto proporciona a los usuarios una ubicación integrada para que las compilaciones de la aplicación inserten las imágenes resultantes.

En este artículo, configurará el registro de imágenes de contenedor integrado para un clúster de Red Hat OpenShift en Azure (ARO) 4. Aprenderá a:

  • Autorizar una identidad para que acceda al registro
  • Acceder al registro de imágenes de contenedor integrado desde dentro del clúster
  • Acceder al registro de imágenes de contenedor integrado desde fuera del clúster

Antes de empezar

En este artículo se da por supuesto que tiene un clúster de ARO existente (consulte Creación de un clúster de la versión 4 de Red Hat OpenShift en Azure). Si desea configurar la integración de Microsoft Entra, asegúrese de crear el clúster con el --pull-secret argumento en az aro create.

Nota:

La configuración de la autenticación de Microsoft Entra para el clúster es la manera más fácil de interactuar con el registro interno desde fuera del clúster.

Una vez que tenga el clúster, autentíquese como el usuario kubeadmin para conectarse al clúster.

Configuración de la autenticación en el registro

Para que cualquier identidad (un usuario de clúster, un usuario de Microsoft Entra o ServiceAccount) acceda al registro interno, se deben conceder permisos dentro del clúster:

Como kubeadmin, ejecute los siguientes comandos:

# 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>

Nota:

Para los usuarios del clúster y los usuarios de Microsoft Entra, este será el mismo nombre que se usará para autenticarse en el clúster. Para ServiceAccounts de OpenShift, el nombre debe tener el formato system:serviceaccount:<project>:<name>

Acceso al registro

Ahora que ha configurado la autenticación para el registro, puede interactuar con él:

Desde dentro del clúster

Si tiene que acceder al registro desde dentro del clúster (por ejemplo, está ejecutando una plataforma de CI/CD como pods que insertarán o extraerán imágenes del registro), puede acceder al registro a través de su servicio ClusterIP con el nombre de dominio completo image-registry.openshift-image-registry.svc.cluster.local:5000, al que pueden acceder todos los pods del clúster.

Desde fuera del clúster

Si los flujos de trabajo requieren acceso al registro interno desde fuera del clúster (por ejemplo, quiere insertar o extraer imágenes desde el portátil de un desarrollador, la plataforma de CI/CD externa u otro clúster de ARO), deberá seguir algunos pasos adicionales:

Como kubeadmin, ejecute los comandos siguientes para exponer el registro integrado fuera del clúster a través de una ruta:

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

Luego puede encontrar el nombre de dominio completo enrutable externamente del registro:

Como kubeadmin, ejecute:

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

Pasos siguientes

Ahora que ha configurado el registro de imagen de contenedor integrado, puede implementar una aplicación en OpenShift. En el caso de las aplicaciones Java, consulte Implementación de una aplicación Java con Open Liberty/WebSphere Liberty en un clúster de Red Hat OpenShift en Azure 4.