我正在使用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
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
答案 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驱动程序的静态磁盘在我这边工作的结果的屏幕截图: