Невозможно извлечь изображение из реестра контейнеров Azure

#azure #kubernetes #containers

#azure #kubernetes #контейнеры

Вопрос:

Недавно у нас возникла проблема с нашим кластером Azure Kubernetes, который не сообщает о каких-либо данных через портал Azure. Чтобы исправить это, я обновил версию Kubernetes до последней версии, как было рекомендовано на GitHub. После завершения обновления мы смогли просматривать журналы и данные мониторинга через портал, но один из контейнеров, хранящихся в нашем реестре контейнеров Azure, не может быть извлечен кластером Kubernetes.

Ошибка, которую я вижу на странице управления Kuberenetes:

 Failed to pull image "myacr.azurecr.io/container:190305.191": [rpc error: code = Unknown desc = Error response from daemon: Get https://myacr.azurecr.io/v2/mycontainer/manifests/190305.191: unauthorized: authentication required, rpc error: code = Unknown desc = Error response from daemon: Get https://myacr.azurecr.io/v2/mycontainer/manifests/190305.191: unauthorized: authentication required]
  

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

Как только я увидел, что это не удалось, я удалил учетную запись из разрешений как для ACR, так и для AKS. И снова не удалось извлечь изображение.

После этого я попытался использовать второй метод создания секретного файла Kubernetes и получил ту же ошибку.

На данный момент я не уверен, что еще нужно проверить. Я проверил, что могу запустить docker pull на своем компьютере и извлечь изображение, но, похоже, между AKS и ACR есть сбой, с которым я не могу разобраться.

Комментарии:

1. сколько лет кластеру? вы пытались обновить пароль участника службы? возможно, срок его действия истек изменен

2. Кластеру @4c74356b41 ~ 4 месяца. Я попробую обновить участника службы и посмотрю, что это даст.

3. для извлечения изображений используются учетные данные участника службы. но если все остальные изображения извлекаются нормально, это действительно странно. измените учетные данные: learn.microsoft.com/en-us/azure/aks/update-credentials

4. Еще какие-нибудь обновления для вопроса?

5. @CharlesXu Обновление участника службы ничего не дало. Я просто собираюсь перестроить кластер. Сейчас в нем есть только одно приложение, и я уже потратил на него слишком много времени. Спасибо за вашу помощь!

Ответ №1:

Прошло некоторое время с тех пор, как я изначально опубликовал это, но я наткнулся на стабильное в настоящее время решение проблемы.

По какой-либо причине участник службы не может поддерживать соединение с ACR. Поэтому, если ваш кластер когда-либо выйдет из строя, вы потеряете возможность извлечения из ACR. За последний год это случалось несколько раз, и по мере того, как я переносил все больше своих развертываний Kubernetes в Azure, это становилось все более серьезной проблемой.

Я наткнулся на этот документ Microsoft и заметил упоминание о --attach-acr команде.

Вот как выглядит полная команда:

 az aks create -n myAKSCluster -g myResourceGroup --generate-ssh-keys --attach-acr $MYACR
  

С момента установки этого флага у меня было 0 проблем с ним.

постучите по дереву