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 anvisningarna för Azure Portal eller Azure CLI 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 Portal eller Azure CLI.
Om du använder Azure Portal navigerar 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
.
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 hemligheten till tjänstkontot
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