Использование Реестра контейнеров Azure с Azure Red Hat OpenShift

Реестр контейнеров Azure (ACR) — это управляемая служба реестра контейнеров, которую можно использовать для хранения частных образов контейнеров DOCKER с корпоративными возможностями, такими как георепликация. Чтобы получить доступ к записи контроля доступа из кластера ARO, этот кластер может пройти проверку подлинности в ACR, сохраняя учетные данные для входа в DOCKER в секрете Kubernetes. Аналогичным образом кластер ARO может использовать imagePullSecret в спецификации pod для проверки подлинности в реестре при извлечении образа. Из этой статьи вы узнаете, как настроить Реестр контейнеров Azure с помощью кластера Azure Red Hat OpenShift для хранения и извлечения частных образов контейнеров DOCKER.

Предварительные требования

В этом учебнике предполагается наличие у вас Реестра контейнеров Azure. В противном случае используйте портал Azure или инструкции Azure CLI для создания реестра контейнеров.

В этой статье также предполагается наличие у вас кластера Azure Red Hat OpenShift и установленного интерфейса командной строки oc. Если это не так, следуйте инструкциям в учебнике по созданию кластера ARO.

Получить секрет запрашивания

Чтобы получить доступ к реестру из кластера ARO, вам потребуется секрет запрашивания из записи контроля доступа.

Чтобы получить учетные данные секрета запрашивания, можно использовать либо портал Azure, либо Azure CLI.

Если вы используете портал Azure, перейдите к своему экземпляру записи контроля доступа и выберите Ключи доступа. Ваш docker-username — это имя реестра вашего контейнера, для docker-password используйте либо password, либо password2.

Access Keys

Вместо этого можно использовать Azure CLI для получения этих учетных данных:

az acr credential show -n <your registry name>

Создание секрета Kubernetes

Теперь мы будем использовать эти учетные данные для создания секрета Kubernetes. Выполните следующую команду с помощью учетных данных записи контроля доступа:

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

Примечание

Этот секрет будет храниться в текущем проекте OpenShift (пространство имен Kubernetes) и будет ссылаться только на объекты pod, созданные в этом проекте. См. этот документ для получения дополнительных сведений по созданию секрета запрашивания для всего кластера.

Создание модуля pod с помощью частного образа реестра

Теперь, когда мы подключились к кластеру ARO к записи контроля доступа, мы создадим образ из записи контроля доступа, чтобы создать модуль.

Начните с podSpec и укажите секрет, созданный как 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

Чтобы убедиться, что pod работает, выполните эту команду и дождитесь, пока ее состояние не станет Выполняется:

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

Дальнейшие действия