Поделиться через


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

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

Предпосылки

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

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

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

Вам нужен секрет доступа из ACR для доступа к реестру вашей кластерной среды.

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

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

Снимок экрана: ключи доступа.

Вместо этого можно использовать 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=<password> \
    --docker-email=unused \
    acr-secret

Замечание

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

Затем свяжите секрет с учетной записью службы, используемой модулем pod, чтобы модуль pod смог получить доступ к реестру контейнеров. Имя учетной записи службы должно соответствовать имени учетной записи службы, используемой pod. default — учетная запись службы по умолчанию:

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

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

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

Начните с 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

Дальнейшие шаги