Compartilhar via


Usar o Registro de Contêiner do Azure com o Red Hat OpenShift no Azure

O Registro de Contêiner do Azure (ACR) é um serviço de registro de contêiner gerenciado que você pode usar para armazenar imagens de contêiner privadas do Docker com funcionalidades empresariais, como replicação geográfica. Para acessar o ACR de um cluster, o cluster pode se autenticar com o ACR armazenando credenciais de entrada do Docker em um segredo do Kubernetes. Da mesma forma, um cluster pode usar um imagePullSecret na especificação de pod para se autenticar no registro ao efetuar pull da imagem. Neste artigo, você aprenderá a configurar um Registro de Contêiner do Azure com um cluster do Red Hat OpenShift do Azure para armazenar e efetuar pull de 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 do Red Hat OpenShift no Azure existente e tenha a CLI oc instalada. Caso contrário, siga as instruções no tutorial Criar cluster.

Obter um segredo de pull

Você precisa de um segredo de extração do ACR para acessar o registro a partir do seu cluster.

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

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

Captura de tela das chaves de acesso.

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

az acr credential show -n <your registry name>

Criar segredo do Kubernetes

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

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

Observação

Esse segredo é armazenado no Projeto OpenShift atual (Namespace do Kubernetes) e só 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 usada pelo pod, para que o pod possa acessar o registro de 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 privado

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

Comece com um podSpec e especifique o segredo que você criou como uma 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 o pod está em execução, execute este comando e aguarde até que o status seja Em execução:

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

Próximas etapas