Configurare il registro contenitori predefinito per Azure Red Hat OpenShift 4

Azure Red Hat OpenShift offre un registro di immagini del contenitore integrato che aggiunge la possibilità di effettuare automaticamente il provisioning di nuovi repository di immagini su richiesta. In questo modo gli utenti hanno una posizione predefinita per le compilazioni dell'applicazione per eseguire il push delle immagini risultanti.

In questo articolo si configurerà il registro immagini del contenitore predefinito per un cluster Azure Red Hat OpenShift (ARO) 4. Si apprenderà come:

  • Autorizzare un'identità ad accedere al Registro di sistema
  • Accedere al registro immagini del contenitore predefinito dall'interno del cluster
  • Accedere al registro immagini del contenitore predefinito dall'esterno del cluster

Operazioni preliminari

Questo articolo presuppone che sia presente un cluster ARO esistente (vedere Creare un cluster Azure Red Hat OpenShift 4). Se si vuole configurare l'integrazione di Microsoft Entra, assicurarsi di creare il cluster con l'argomento --pull-secret su az aro create.

Nota

La configurazione dell'autenticazione di Microsoft Entra per il cluster è il modo più semplice per interagire con il registro interno dall'esterno del cluster.

Dopo aver creato il cluster, connettersi al cluster eseguendo l'autenticazione kubeadmin come utente.

Configurare l'autenticazione nel Registro di sistema

Per qualsiasi identità (utente del cluster, utente di Microsoft Entra o ServiceAccount) per accedere al Registro di sistema interno, è necessario concedere le autorizzazioni all'interno del cluster:

Come kubeadmin, eseguire i comandi seguenti:

# 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

Per gli utenti del cluster e gli utenti di Microsoft Entra: questo sarà lo stesso nome usato per l'autenticazione nel cluster. Per OpenShift ServiceAccounts, formattare il nome come system:serviceaccount:<project>:<name>

Accedere al Registro di sistema

Dopo aver configurato l'autenticazione per il Registro di sistema, è possibile interagire con esso:

Dall'interno del cluster

Se è necessario accedere al Registro di sistema dall'interno del cluster,ad esempio si esegue una piattaforma CI/CD come pod che eseguirà il push/pull delle immagini nel Registro di sistema, è possibile accedere al Registro di sistema tramite il relativo servizio ClusterIP al nome image-registry.openshift-image-registry.svc.cluster.local:5000di dominio completo , accessibile a tutti i pod all'interno del cluster.

Dall'esterno del cluster

Se i flussi di lavoro richiedono l'accesso al Registro di sistema interno dall'esterno del cluster (ad esempio, si vuole eseguire il push/pull di immagini da un portatile dello sviluppatore, dalla piattaforma CI/CD esterna e/o da un altro cluster ARO), è necessario eseguire alcuni passaggi aggiuntivi:

Come kubeadmin, eseguire i comandi seguenti per esporre il Registro di sistema predefinito all'esterno del cluster tramite una route:

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

È quindi possibile trovare il nome di dominio completo del Registro di sistema instradabile esternamente:

Come kubeadmin, eseguire:

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

Passaggi successivi

Dopo aver configurato il registro immagini del contenitore predefinito, è possibile iniziare distribuendo un'applicazione in OpenShift. Per le applicazioni Java, vedere Distribuire un'applicazione Java con Open Liberty/WebSphere Liberty in un cluster Azure Red Hat OpenShift 4.