0

我想将共享磁盘附加到 AKS 上的多个 Windows 容器。从帖子中了解到,它可以用于 Linux 容器。

我正在尝试对 windows 容器做同样的事情,但它无法挂载共享磁盘,并出现以下错误

卷“pvc-6e07bdca-2126-4a5b-806a-026016c3798d”的 MapVolume.MapPodDevice 失败:rpc 错误:代码 = 内部 desc = 无法在“\var\lib\kubelet\plugins\kubernetes.io\csi”挂载“2” \volumeDevices\publish\pvc-6e07bdca-2126-4a5b-806a-026016c3798d\4e44da87-ea33-4d85-a7db-076db0883bcf”:rpc 错误:代码 = 未知 desc = 不是绝对 Windows 路径:2 发生错误

下面用于动态预配共享 Azure 磁盘

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-csi-custom
provisioner: disk.csi.azure.com
parameters:
  skuname: Premium_LRS  
  maxShares: "2"
  cachingMode: None
reclaimPolicy: Delete
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-azuredisk-dynamic
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 4Gi  
  volumeMode: Block
  storageClassName: managed-csi-custom
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: test-shared-disk
  name: deployment-azuredisk
spec:
  replicas: 2
  selector:
    matchLabels:
      app: test-shared-disk
  template:
    metadata:
      labels:
        app: test-shared-disk
      name: deployment-azuredisk
    spec:
      nodeSelector:
        role: windowsgeneral
      containers:
        - name: deployment-azuredisk
          image: mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019
          volumeDevices:
            - name: azuredisk
              devicePath: "D:\test"
      volumes:
        - name: azuredisk
          persistentVolumeClaim:
            claimName: pvc-azuredisk-dynamic

是否可以在 AKS 上为 Windows 容器安装共享磁盘?感谢帮助。

4

1 回答 1

0

Azure 共享磁盘是一项 Azure 托管磁盘功能,可同时将 Azure 磁盘附加到代理节点。但它并不只适用于窗口节点池

要克服此问题或安装Azure Disk CSI driver到窗口节点,您需要先配置或创建窗口节点池。请参阅本MS 教程以添加 Windows 节点池。

拥有 Windows 节点池后,您现在可以使用相同的内置存储类managed-csi来挂载 DISK。

有关更多信息和验证卷映射,您可以参考此MS 文档

于 2022-02-22T18:47:05.940 回答