首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure磁盘FailedAttachVolume问题:无法从磁盘URL获取磁盘名称

Azure磁盘FailedAttachVolume问题:无法从磁盘URL获取磁盘名称
EN

Stack Overflow用户
提问于 2019-12-06 03:15:19
回答 1查看 1.4K关注 0票数 0

我正在使用azure磁盘驱动程序方法来实现K8持久卷。我已经在我的K8集群中安装了azure驱动程序,并使用下面提到的文件作为端到端测试的目的,但是由于以下错误,我的部署失败了:

警告/subscriptions/464f9a13-7g6o-730g-hqi4-6ld2802re6z1/resourcegroups/560d_RTT_HOT_ENV_RG/providers/Microsoft.Compute/disks/560d-RTT-PVDisk,23s (x7超过55s) -控制器AttachVolume.Attach失败,卷"pv-azuredisk-csi“:rpc错误: code = NotFound desc = FailedAttachVolume NotFound,failed :未能从正确格式获得磁盘名称:./subscriptions/(?:.)/resourceGroups/(?:.*)/providers/Microsoft.Compute/disks/(.+)

注意:我已经检查过多次,我的URL是正确的,但我不确定资源组名称中的下划线是否造成了任何问题,RG = "560d_RTT_HOT_ENV_RG“。如果有人知道出了什么问题,请提出建议。

K8版本: 14.9

CSI驱动程序: v0.3.0

我的YAML文件是:

代码语言:javascript
复制
csi-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-azuredisk-csi
namespace: azure-static-diskpv-csi-fss
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
csi:
driver: disk.csi.azure.com
readOnly: false
volumeHandle: /subscriptions/464f9a13-7g6o-730g-hqi4-6ld2802re6z1/resourcegroups/560d_RTT_HOT_ENV_RG/providers/Microsoft.Compute/disks/560d-RTT-PVDisk
volumeAttributes:
cachingMode: ReadOnly
fsType: ext4
-------------------------------------------------------------------------------------------------
代码语言:javascript
复制
csi-pvc.yaml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-azuredisk-csi
namespace: azure-static-diskpv-csi-fss
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
volumeName: pv-azuredisk-csi
storageClassName: ""
代码语言:javascript
复制
nginx-csi-pod.yaml

kind: Pod
apiVersion: v1
metadata:
name: nginx-azuredisk-csi
namespace: azure-static-diskpv-csi-fss
spec:
nodeSelector:
beta.kubernetes.io/os: linux
containers:
image: nginx
name: nginx-azuredisk-csi
command:
"/bin/sh"
"-c"
while true; do echo $(date) >> /mnt/azuredisk/outfile; sleep 1; done
volumeMounts:
name: azuredisk01
mountPath: "/mnt/azuredisk"
volumes:
name: azuredisk01
persistentVolumeClaim:
claimName: pvc-azuredisk-csi
EN

回答 1

Stack Overflow用户

发布于 2019-12-06 06:31:12

似乎您在另一个资源组中创建磁盘,而不是AKS节点组。因此,必须首先将集群的Azure Kubernetes服务(AKS)服务主体Contributor角色授予磁盘的资源组。有关更多细节,请参见创建Azure磁盘

更新:

最后,我找出了它找不到卷的原因。我觉得这是个愚蠢的定义。它对用于持久化卷的磁盘的资源Id是区分大小写的。因此,您需要修改csi-pv.yaml文件,如下所示:

代码语言:javascript
复制
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-azuredisk-csi
  namespace: azure-static-diskpv-csi-fss
spec:
  capacity:
    storage: 10Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  csi:
    driver: disk.csi.azure.com
    readOnly: false
    volumeHandle: /subscriptions/464f9a13-7g6o-730g-hqi4-6ld2802re6z1/resourcegroups/560d_rtt_hot_env_rg/providers/Microsoft.Compute/disks/560d-RTT-PVDisk
    volumeAttributes:
      cachingMode: ReadOnly
      fsType: ext4

此外,答案的第一段也很重要。

更新:

下面是用于CSI驱动程序的静态磁盘在我这边工作的结果的截图:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59206349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档