gpt4 book ai didi

azure - 无法使用 AKS 和 ACR 提取新镜像

转载 作者:行者123 更新时间:2023-12-02 11:39:15 31 4
gpt4 key购买 nike

我突然在使用 AKS 从 Azure 容器注册表提取最新镜像时遇到问题(之前工作正常。

如果我运行

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

我尝试创建一个新的日志分析工作区,但上述错误仍然存​​在。

我还尝试了以下步骤:

This link

This SO post

As well as this post

除了上面的帖子之外,我还浏览了许多教程和 Microsoft 页面来尝试解决该问题。

我尝试创建一个新的服务主体并为其分配适当的角色,但错误仍然存​​在。我也尝试过创造新的 secret ,但没有成功。

我不需要新镜像的 Pod 都按预期运行。如果我查看我的应用程序注册(在 azure Active Directory 下),它们都是一年前创建的 - 所以我担心某些内容已过期,而且我不知道如何修复它。

最佳答案

有两种方法可以进行排序

  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
<小时/>

另一种方法是添加 Image pull Secret,其类型为 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>
<小时/>

然后您可以在部署文件中将此 key 引用为 imagePullSecret,并且不会出现身份验证错误

关于azure - 无法使用 AKS 和 ACR 提取新镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58448317/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com