Невозможно вытащить новый образ с AKS и ACR - PullRequest
1 голос
/ 18 октября 2019

У меня внезапно возникли проблемы при извлечении последнего образа из реестра контейнеров Azure с помощью AKS (который ранее работал нормально.

Если я запускаю

kubectl describe pod <podid> I get:


Failed to pull image <image>: rpc error: code = Unknown desc = Error response from daemon: Get <image>: unauthorized: authentication required

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

Более того, я пробовал:

az aks update -g MyResourceGroup -n MyManagedCluster --attach-acr acrName

Что успешно (нет ошибок, естьвыходное распространение было успешным), но оно все еще не работает.

Я попытался обновить учетные данные с помощью:

az aks update-credentials --resource-group <group>--name <aks name>--reset-service-principal --service-principal <sp id> --client-secret <client-secret>

, который выдает довольно странное сообщение:

Deployment failed. Correlation ID: 6e84754a-821d-4a39-a0df-7ab9ba21973f. 
Unable to get log analytics workspace info. Resource ID: 
/subscriptions/<subscription id>/resourcegroups/defaultresourcegroup- 
weu/providers/microsoft.operationalinsights/workspaces/defaultworkspace- 
d259e6ea-8230-4cb0-a7a8-7f0df6c7ef18-weu. Details: autorest/azure: Service 
returned an error. Status=404 Code="ResourceGroupNotFound" 
Message="Resource group 'defaultresourcegroup-weu' could not be found.". For 
more details about how to create and use log analytics workspace,  please 
refer to: https://aka.ms/new-log-analytics

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

Я также попытался выполнить шаги из:

Эта ссылка

Это ТАК сообщение

Как и этот пост

Помимо постов выше, я прошел много уроков и Microsoftстраницы, чтобы попытаться решить проблему.

Я пытался создать новый сервис princiприятель и назначив ему соответствующие роли, но ошибка все еще сохраняется. Я также баловался с созданием новых секретов и не имел успеха.

Мои модули, которые не нуждаются в новых изображениях, все работают, как ожидалось. Если я посмотрю на регистрацию моего приложения (в лазурном активном каталоге), все они были созданы год назад, поэтому я обеспокоен тем, что срок действия какого-то файла истек, и я не знаю, как это исправить.

Ответы [ 2 ]

2 голосов
/ 18 октября 2019

есть два способа сортировки

  1. Сопоставить ACR с AKS

CLIENT_ID=$(az aks show --resource-group $AKS_RESOURCE_GROUP --name 
$AKS_CLUSTER_NAME --subscription $SUBSCRIPTION_ID --query "servicePrincipalProfile.clientId" --output tsv)

ACR_ID=$(az acr show --name $ACR_NAME --resource-group $ACR_RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --query "id" --output tsv)

az role assignment create --assignee $CLIENT_ID --role Reader --scope $ACR_ID

Другой способ - добавить изображение. вытащить секрет, который будет иметь тип kubernetes.io/dockerconfigjson

, это можно сделать с помощью -

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

Затем вы можете ссылаться на этот секрет как imagePullSecret в файлах развертывания иошибки аутентификации не должно быть

0 голосов
/ 21 октября 2019

Получил эту работу, отключив надстройку Log Analytics с помощью:

az aks disable-addons -a monitoring -n <AKSName> -g <ResourceGroupName>

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

az aks update-credentials --resource-group <group>--name <aks name>--reset-service-principal --service-principal <sp id> --client-secret <client-secret>

...