azure - 将 Azure 磁盘附加到 AKS pod 时出现权限错误
问题描述
我已经与这个错误作斗争几个小时了。找到了几篇文章,但到目前为止没有任何帮助。
我的工作基于https://docs.microsoft.com/en-us/azure/aks/azure-disk-volume中的“操作指南 > 配置数据卷 > Azure 磁盘 - 静态” 。据我所知,我没有错过任何步骤。
我在 YAML 文件中通过 config 定义如下:
种类:部署 元数据: 名称:phio-dep-db 命名空间:生产 规格: 选择器: 匹配标签: 应用程序:phio 复制品:1 战略: 类型:滚动更新 模板: 元数据: 标签: 应用程序:phio 规格: 终止GracePeriodSeconds:1 卷: - 名称:数据库卷 天蓝色磁盘: 磁盘名称:PHIO_DB_VOL diskURI:/subscriptions/<my-sub-id/resourceGroups/<my-grp>/providers/Microsoft.Compute/disks/PHIO_DB_VOL 种类:托管 容器: - 图片:phioweb.azurecr.io/phiodb 名称:分贝 端口: - 容器端口:3306 卷装: - 挂载路径:/var/lib/mysql 名称:数据库卷
但是,当我执行 kubectl apply -f .yml 时,pod 永远不会启动。如果我执行“kubectl describe all -n production”,我会看到以下内容:
类型原因年龄来自消息 ---- ------ ---- ---- -------- 正常调度 31m default-scheduler 成功分配 production/phio-dep-db-6c6ddc885-p4ntg 到 aks-nodepool1-18816840-vmss000001 警告 FailedAttachVolume 79s (x23 over 31m) attachdetach-controller AttachVolume.Attach 卷“dbvolume”失败:compute.DisksClient#Get:响应请求失败:StatusCode=403 - 原始错误:autorest/azure:服务返回错误。Status=403 Code="AuthorizationFailed" Message="对象 id '<same GUID>' 的客户端 '<GUID>' 没有权限在范围 '/subscriptions/< 上执行操作 'Microsoft.Compute/disks/read' my-sub-id/resourceGroups/<my-grp>/providers/Microsoft.Compute/disks/PHIO_DB_VOL' 或范围无效。如果最近授予访问权限,请刷新您的凭据。” 警告 FailedMount 23s (x14 over 29m) kubelet, aks-nodepool1-18816840-vmss000001 无法为 pod “phio-dep-db-6c6ddc885-p4ntg_production(0e326781-2936-4451-9446-9608a8f41439)”挂载卷:等待超时为 pod“production”/“phio-dep-db-6c6ddc885-p4ntg”附加或挂载的卷。卸载卷列表=[dbvolume]。未附加卷列表=[dbvolume default-token-s7svk]
MS 文档中没有任何关于向 Azure 磁盘分配权限的内容,并且我在 YAML 中没有缺少明显的参数。
有人知道我缺少什么吗?
非常感谢。
(我已经对输出进行了一些清理,但这都是测试,并且 Azure 订阅将在这项工作之后被分箱,即使它说的是生产)
解决方案
创建用于 AKS 的 Azure 磁盘时,可以在节点资源组中创建磁盘资源。此方法允许 AKS 群集访问和管理磁盘资源。如果改为在单独的资源组中创建磁盘,则必须向群集的 Azure Kubernetes 服务 (AKS) 服务主体授予磁盘资源组的参与者角色。或者,您可以使用系统分配的托管标识而不是服务主体来获得权限。有关详细信息,请参阅使用托管标识
您可能需要访问另一个资源组中的现有磁盘资源。分配以下一组角色权限之一:
- 创建自定义角色并定义以下角色权限:Microsoft.Compute/disks/read Microsoft.Compute/disks/write
- 或者,在资源组上分配存储帐户参与者内置角色
推荐阅读
- api - 对 GPU 驱动程序的 Vulkan API 调用
- php - 当页面不是该菜单项的子项时,如何将活动类添加到 Wordpress 菜单项?
- spring - 创建 bean 时出错:'org.springframework.aop.config.internalAutoProxyCr.Beaeator'
- javascript - 我在打字稿中有一个自定义事件,我只想创建一次自定义事件对象,而后者想使用相同的对象
- c# - 等待 SecureStorage.GetAsync("Key"); 返回空
- linux-kernel - am335x如何使用serdev驱动?
- c# - ILMerge for more dlls under one,但是当在其他程序中使用这个dll时,隐藏的dll仍然可见,这会导致版本冲突
- swift - VSCode 1.56.2 的二进制版本不在 Windows 10 上执行
- node.js - typeorm 泄漏 typeormMetadataArgsStorage
- excel - 尝试从 Excel 通过 Gmail 发送电子邮件时出现“发送使用”值错误