Usar o Registro de Contêiner do Azure com o Red Hat OpenShift no Azure (ARO)
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 do ARO, o cluster pode autenticar com o ACR armazenando as credenciais de logon do Docker em um segredo Kubernetes. Da mesma forma, um cluster do ARO pode usar um imagePullSecret na especificação do pod para se autenticar no registro ao extrair a imagem. Neste artigo, você aprenderá a configurar um Registro de Contêiner do Azure com um cluster do Red Hat OpenShift no 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. Se você não fizer isso, 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 do ARO.
Obter um segredo de pull
Você precisará de um segredo de pull do ACR para acessar o registro do seu cluster do ARO.
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
.
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, usaremos 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=******** \
--docker-email=unused \
acr-secret
Observação
Esse segredo será armazenado no projeto do OpenShift atual (namespace do Kubernetes) e só poderá ser referenciado pelo pods criado nesse projeto. Consulte este documento para obter mais instruções sobre como criar um segredo de pull em todo o cluster.
Vincular o segredo à conta de serviço
Em seguida, vincule o segredo à conta de serviço que será 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 do ARO ao ACR, vamos fazer pull de 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