Använda Azure Container Registry med Azure Red Hat OpenShift (ARO)

Azure Container Registry (ACR) är en hanterad containerregistertjänst som du kan använda för att lagra privata Docker-containeravbildningar med företagsfunktioner som geo-replikering. För att komma åt ACR från ett ARO-kluster kan klustret autentisera med ACR genom att lagra Docker-inloggningsuppgifter i en Kubernetes-hemlighet. På samma sätt kan ett ARO-kluster använda en imagePullSecret i poddspecifikationen för att autentisera mot registret när avbildningen hämtas. I den här artikeln får du lära dig hur du konfigurerar ett Azure Container Registry med ett Azure Red Hat OpenShift-kluster för att lagra och hämta privata Docker-containeravbildningar.

Förutsättningar

Den här guiden förutsätter att du har ett befintligt Azure Container Registry. Om du inte gör det använder du Azure-portalen eller Azure CLI-instruktionerna för att skapa ett containerregister.

Den här artikeln förutsätter också att du har ett befintligt Azure Red Hat OpenShift-kluster och har oc CLI installerat. Om inte följer du anvisningarna i självstudien Skapa ARO-kluster.

Hämta en pull-hemlighet

Du behöver en pull-hemlighet från ACR för att komma åt registret från ditt ARO-kluster.

Om du vill hämta dina autentiseringsuppgifter för pull-hemligheten kan du använda antingen Azure-portalen eller Azure CLI.

Om du använder Azure-portalen går du till din ACR-instans och väljer Åtkomstnycklar. Ditt docker-username är namnet på containerregistret, använd antingen lösenord eller lösenord2 för docker-password.

Access Keys

I stället kan du använda Azure CLI för att hämta dessa autentiseringsuppgifter:

az acr credential show -n <your registry name>

Skapa Kubernetes-hemligheten

Nu ska vi använda dessa autentiseringsuppgifter för att skapa en Kubernetes-hemlighet. Kör följande kommando med dina ACR-autentiseringsuppgifter:

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

Kommentar

Den här hemligheten lagras i det aktuella OpenShift-projektet (Kubernetes-namnområdet) och kan endast refereras av poddar som skapats i projektet. Mer information om hur du skapar en klusteromfattande pull-hemlighet finns i det här dokumentet .

Länka sedan hemligheten till tjänstkontot som ska användas av podden så att podden kan nå containerregistret. Namnet på tjänstkontot ska matcha namnet på det tjänstkonto som används av podden. default är standardtjänstkontot:

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

Skapa en podd med en privat registerbild

Nu när vi har anslutit ditt ARO-kluster till din ACR ska vi hämta en avbildning från din ACR för att skapa en podd.

Börja med en podSpec och ange hemligheten du skapade som en 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

Om du vill testa att podden är igång kör du det här kommandot och väntar tills statusen körs:

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

Nästa steg