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
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.
Łączenie wpisu tajnego z kontem usługi
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