Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Реестр контейнеров 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