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

时间:2019-12-06 03:15:19

标签: azure kubernetes persistent-volumes

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

  

警告失败附加卷23秒(x7超过55秒)attachdetach-controller   卷“ pv-azuredisk-csi”的AttachVolume.Attach失败:RPC错误:   代码=未找到desc =未找到卷,失败并出现错误:无法   从中获取磁盘名称   /subscriptions/464f9a13-7g6o-730g-hqi4-6ld2802re6z1/resourcegroups/560d_RTT_HOT_ENV_RG/providers/Microsoft.Compute/disks/560d-RTT-PVDisk,   正确格式:   ./subscriptions /(?:.)/ resourceGroups /(?:.*)/ providers / Microsoft.Compute / disks /(.+)

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

K8版本:14.9
CSI驱动程序:v0.3.0

我的YAML文件是:

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
-------------------------------------------------------------------------------------------------
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: ""

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

1 个答案:

答案 0 :(得分:0)

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

更新

最后,我找出了找不到卷的原因。我认为这是一个愚蠢的定义。关于用于持久卷的磁盘资源ID区分大小写。因此,您需要像下面那样更改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

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

更新

以下是CSI驱动程序的静态磁盘在我这边工作的结果的屏幕截图:

enter image description here

enter image description here

相关问题