Usar o Registro de Contêiner do Azure com o Azure Red Hat OpenShift (ARO)

O Azure Container Registry (ACR) é um serviço de registro de contêiner gerenciado que você pode usar para armazenar imagens de contêiner privadas do Docker com recursos corporativos, como replicação geográfica. Para acessar o ACR de um cluster ARO, o cluster pode se autenticar com o ACR armazenando as credenciais de login do Docker em um segredo do Kubernetes. Da mesma forma, um cluster ARO pode usar um imagePullSecret na especificação do pod para autenticar no registro ao extrair a imagem. Neste artigo, você aprenderá como configurar um Registro de Contêiner do Azure com um cluster do Azure Red Hat OpenShift para armazenar e extrair imagens de contêiner privadas do Docker.

Pré-requisitos

Este guia pressupõe que você tenha um Registro de Contêiner do Azure existente. Caso contrário, use o portal do Azure ou as instruções da CLI do Azure para criar um registro de contêiner.

Este artigo também pressupõe que você tenha um cluster existente do Azure Red Hat OpenShift e tenha a oc CLI instalada. Caso contrário, siga as instruções no tutorial Criar cluster ARO.

Obtenha um segredo puxado

Você precisará de um segredo de pull do ACR para acessar o registro do seu cluster ARO.

Para obter suas credenciais de pull secret, você pode usar o portal do Azure ou a CLI do Azure.

Se estiver usando o portal do Azure, navegue até sua instância ACR e selecione Chaves de acesso. Seu docker-username é o nome do seu registro de contêiner, use senha ou senha2 para docker-password.

Access Keys

Em vez disso, você pode usar a CLI do Azure para obter estas credenciais:

az acr credential show -n <your registry name>

Crie o segredo do Kubernetes

Agora, usaremos essas credenciais para criar um segredo do Kubernetes. Execute o seguinte comando com suas credenciais ACR:

oc create secret docker-registry \
    --docker-server=<your registry name>.azurecr.io \
    --docker-username=<your registry name> \
    --docker-password=******** \
    --docker-email=unused \
    acr-secret

Nota

Esse segredo será armazenado no Projeto OpenShift atual (Kubernetes Namespace) e só poderá ser referenciado por pods criados nesse Projeto. Consulte este documento para obter mais instruções sobre como criar um segredo de pull em todo o cluster.

Em seguida, vincule o segredo à conta de serviço que será usada pelo pod, para que o pod possa acessar o registro do contêiner. O nome da conta de serviço deve corresponder ao nome da conta de serviço usada pelo pod. default é a conta de serviço padrão:

oc secrets link default <pull_secret_name> --for=pull

Criar um pod usando uma imagem de registro privada

Agora que conectamos seu cluster ARO ao seu ACR, vamos extrair uma imagem do seu ACR para criar um pod.

Comece com um podSpec e especifique o segredo que você criou como um imagePullSecret:

apiVersion: v1
kind: Pod
metadata:
  name: hello-world
spec:
  containers:
  - name: hello-world
    image: <your registry name>.azurecr.io/hello-world:v1
  imagePullSecrets:
  - name: acr-secret

Para testar se seu pod está funcionando, execute este comando e aguarde até que o status seja Running:

$ oc get pods --watch
NAME         READY   STATUS    RESTARTS   AGE
hello-world  1/1     Running   0          30s

Próximos passos