#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 проблем с ним.
постучите по дереву