Używanie usługi Azure Container Registry z usługą Azure Red Hat OpenShift (ARO)

Usługa Azure Container Registry (ACR) to zarządzana usługa rejestru kontenerów, której można użyć do przechowywania prywatnych obrazów kontenerów platformy Docker z funkcjami przedsiębiorstwa, takimi jak replikacja geograficzna. Aby uzyskać dostęp do usługi ACR z klastra usługi ARO, klaster może uwierzytelniać się za pomocą usługi ACR, przechowując poświadczenia logowania platformy Docker w kluczu tajnym platformy Kubernetes. Podobnie klaster ARO może używać obrazuPullSecret w specyfikacji zasobnika do uwierzytelniania w rejestrze podczas ściągania obrazu. W tym artykule dowiesz się, jak skonfigurować usługę Azure Container Registry przy użyciu klastra usługi Azure Red Hat OpenShift w celu przechowywania i ściągania prywatnych obrazów kontenerów platformy Docker.

Wymagania wstępne

W tym przewodniku założono, że masz istniejącą usługę Azure Container Registry. Jeśli tego nie zrobisz, użyj witryny Azure Portal lub instrukcji interfejsu wiersza polecenia platformy Azure, aby utworzyć rejestr kontenerów.

W tym artykule założono również, że masz istniejący klaster usługi Azure Red Hat OpenShift i oc masz zainstalowany interfejs wiersza polecenia. Jeśli nie, postępuj zgodnie z instrukcjami w samouczku Tworzenie klastra ARO.

Uzyskiwanie wpisu tajnego ściągania

Aby uzyskać dostęp do rejestru z klastra ARO, potrzebny będzie wpis tajny ściągania z usługi ACR.

Aby uzyskać poświadczenia klucza tajnego ściągania, możesz użyć witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

W przypadku korzystania z witryny Azure Portal przejdź do wystąpienia usługi ACR i wybierz pozycję Klucze dostępu. Jest docker-username to nazwa rejestru kontenerów, użyj hasła lub hasła2 dla .docker-password

Access Keys

Zamiast tego możesz użyć interfejsu wiersza polecenia platformy Azure, aby uzyskać następujące poświadczenia:

az acr credential show -n <your registry name>

Tworzenie wpisu tajnego platformy Kubernetes

Teraz użyjemy tych poświadczeń do utworzenia wpisu tajnego platformy Kubernetes. Wykonaj następujące polecenie przy użyciu poświadczeń usługi 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

Uwaga

Ten wpis tajny będzie przechowywany w bieżącym projekcie OpenShift (przestrzeni nazw Kubernetes) i będzie można odwoływać się tylko do zasobników utworzonych w tym projekcie. Zapoznaj się z tym dokumentem , aby uzyskać dalsze instrukcje dotyczące tworzenia klucza tajnego ściągania całego klastra.

Następnie połącz wpis tajny z kontem usługi, które będzie używane przez zasobnik, aby zasobnik mógł uzyskać dostęp do rejestru kontenerów. Nazwa konta usługi powinna być zgodna z nazwą konta usługi używanego przez zasobnik. default to domyślne konto usługi:

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

Tworzenie zasobnika przy użyciu obrazu rejestru prywatnego

Po połączeniu klastra usługi ARO z usługą ACR pobierzemy obraz z usługi ACR, aby utworzyć zasobnik.

Zacznij od zasobnika podSpec i określ wpis tajny utworzony jako 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

Aby przetestować, czy zasobnik jest uruchomiony, wykonaj to polecenie i zaczekaj na uruchomienie stanu:

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

Następne kroki