Configurar o registro de contêiner interno para o Azure Red Hat OpenShift 4

O Azure Red Hat OpenShift fornece um registo integrado de imagens de contentores para que possa fornecer automaticamente novos repositórios de imagens a pedido. Ao usar este registo, obtém um local integrado para as compilações da sua aplicação enviarem as imagens resultantes.

Neste artigo, configura o registo incorporado de imagens de contentor para um cluster do Azure Red Hat OpenShift 4. Você aprende a:

  • Autorizar uma identidade para aceder ao registo
  • Aceda ao registo de imagens de contentores integrado a partir do interior do cluster
  • Aceda ao registo integrado de imagens de contentor a partir de fora do cluster

Antes de começar

Este artigo pressupõe que você tenha um cluster existente (consulte Criar um cluster do Azure Red Hat OpenShift 4). Se quiseres configurar a integração com o Microsoft Entra, certifica-te de criar o cluster com o --pull-secret argumento para az aro create.

Tip

Configurar a autenticação do Microsoft Entra para seu cluster é a maneira mais fácil de interagir com o registro interno de fora do cluster.

Depois de teres o teu cluster, liga-te ao cluster autenticando-te como utilizador kubeadmin .

Configurar a autenticação para o Registro

Para aceder ao registo interno, deve conceder permissões dentro do cluster a qualquer identidade, como um utilizador do cluster, um utilizador Microsoft Entra ou uma conta de serviço Azure Red Hat OpenShift.

Como kubeadmin, execute os seguintes 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>

Observação

Para utilizadores do cluster e utilizadores da Microsoft Entra, este nome é o mesmo que se usa para autenticar no cluster. Para contas de serviço Azure Red Hat OpenShift, formate o nome como system:serviceaccount:<project>:<name>.

Aceder ao registo

Depois de configurares a autenticação do registo, podes interagir com ele. As secções seguintes fornecem mais detalhes.

De dentro do aglomerado

Suponha que está a executar uma plataforma de integração contínua e entrega contínua (CI/CD) em pods que enviam e obtêm imagens para o repositório e a partir dele. Se precisar de aceder ao registo a partir de dentro do cluster, pode fazê-lo através do seu serviço ClusterIP, no nome de domínio completamente qualificado image-registry.openshift-image-registry.svc.cluster.local:5000. Todos os pods dentro do cluster podem aceder a este registo.

De fora do cluster

Suponha que queres enviar e puxar imagens do portátil de um programador, de uma plataforma CI/CD externa ou de um cluster diferente. Se os seus fluxos de trabalho exigem que aceda ao registo interno a partir de fora do cluster, precisa de completar mais alguns passos.

Como kubeadmin, execute os seguintes comandos para expor o registo incorporado fora do cluster através de uma rota:

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

Em seguida, poderá encontrar o nome de domínio totalmente qualificado, roteável externamente, do registo.

Como kubeadmin, corre:

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