微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用 StorageClass 配置卷 - 无法获取存储帐户的存储密钥

如何解决无法使用 StorageClass 配置卷 - 无法获取存储帐户的存储密钥

我正在尝试为 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 还很陌生,我相信我缺少一些非常重要的东西,但还没有在网络上找到任何帮助。

这是我已经仔细检查过的:

  • 使用正确的帐户登录订阅
  • 引用的存储帐户确实存在
  • 它与 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

PVC 清单

apiVersion: v1
kind: PersistentVolumeClaim
Metadata:
  name: my-pvc
spec:
  accessModes:
  - ReadWriteMany
  storageClassName: xxxxxxxx
  resources:
    requests:
      storage: 5Gi 

我使用 Lens 来管理我的集群。 PVC 资源挂在 Pending 状态:

PVC deployment pending status

你们能帮我弄清楚吗?

解决方法

根据 github 问题 here,如果集群没有服务主体或服务主体在 1 年有效期后过期,则会发生这种情况。

您可以通过运行以下命令来验证它。通过在任何主节点或代理节点上打开 /etc/kubernetes/azure.json 文件来检索详细信息。

az login --service-principal -u <aadClientId> -p <aadClientSecret> -t <tenantId>

doc 后面更新或轮换凭证应该可以解决这个问题。

或者,您可以使用托管标识而不是服务主体来获取权限。托管身份比服务主体更易于管理,并且不需要更新或轮换。有关详细信息,请参阅 Use managed identities

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。