我正在尝试为 pod 部署提供 PVC,但我正面临此错误:
<块引用>无法使用 StorageClass“xxxxxxxxxxx”配置卷:无法获取存储帐户的存储密钥 yyyyyyyyyyy:无法获取存储帐户的存储密钥 yyyyyyyyyyy:可重试:false,RetryAfter:0s,HTTPStatusCode:400,RawError:可重试:false , RetryAfter: 0s, HTTPStatusCode: 400, RawError: azure.BearerAuthorizer#WithAuthorization: 未能刷新令牌以请求 http://localhost:7788/subscriptions/zzzzzzzzzzz-aaaaaa-bbbbbb/resourceGroups/MC_kkkkkkkkkkprovkkiderkk/Microsoft /storageAccounts/yyyyyyyyyyyyyyy/listKeys?api-version=2019-06-01: StatusCode=400 -- 原始错误:adal:刷新请求失败。状态代码 = '400'。响应正文:{"error":"unauthorized_client","error_description":"AADSTS700016:在目录'pppppppppppp-aaaaaaaaaaaa-ttttttttttt'中找不到标识符为'aaaaaaa-bbbbbbbb-cccccccccccccccc'的应用程序。未由租户的管理员安装或租户中的任何用户同意。您可能将身份验证请求发送给了错误的租户。
我对 AKS 还很陌生,我相信我缺少一些非常重要的东西,但还没有在网络上找到任何帮助。
这是我已经仔细检查过的:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: xxxxxxxx
provisioner: kubernetes.io/azure-file
parameters:
skuName: Standard_LRS
storageAccount: yyyyyyyyyyyy
resourceGroup: MC_zzzzzzzzzzzzzzzzz
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: xxxxxxxx
resources:
requests:
storage: 5Gi
我使用 Lens 来管理我的集群。 PVC 资源挂在 Pending
状态:
你们能帮我弄清楚吗?
答案 0 :(得分:2)
根据 github 问题 here,如果集群没有服务主体或服务主体在 1 年有效期后过期,则会发生这种情况。
您可以通过运行以下命令来验证它。通过在任何主节点或代理节点上打开 /etc/kubernetes/azure.json
文件来检索详细信息。
az login --service-principal -u <aadClientId> -p <aadClientSecret> -t <tenantId>
在 doc 后面更新或轮换凭证应该可以解决这个问题。
或者,您可以使用托管标识而不是服务主体来获取权限。托管身份比服务主体更易于管理,并且不需要更新或轮换。有关详细信息,请参阅 Use managed identities