EKS:使用 io2 EBS 卷启用 ReadWriteMany 访问模式

问题描述

我想在 EKS 持久卷中启用 ReadWriteMany 访问模式。来自 EBS AWS 的 io2 卷类型。 SO 使用 io2 类型卷

storage_class.yaml

apiVersion: storage.k8s.io/v1
kind: StorageClass
Metadata:
  name: io2
provisioner: ebs.csi.aws.com
volumeBindingMode: WaitForFirstConsumer
parameters:
  type: io2
  iopsPerGB: "200"

persistent_volume.yaml

apiVersion: v1
kind: PersistentVolume
Metadata:
  name: pv
spec:
  accessModes:
  - ReadWriteMany
  awsElasticBlockStore:
    fsType: ext4
    volumeID: <IO2 type volume ID>
  capacity:
    storage: 50Gi
  storageClassName: io2
  volumeMode: Filesystem

pv_claim.yaml

apiVersion: v1
kind: PersistentVolumeClaim
Metadata:
  name: pvc
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 50Gi
  volumeMode: Filesystem
  volumeName: pv
  storageClassName: io2

当 Pod 的 3 个副本部署在同一可用区的 2 个节点上时,2 个副本(在一个节点上)成功挂载到 io2 卷并开始运行,但另一个节点上的第三个副本未挂载到卷。

错误 -> 无法附加或挂载卷:未挂载的卷['']

另外,想了解 io2 类型的卷是否打算以 ReadWriteMany 访问模式挂载到 EKS 中的多个节点(与卷位于同一可用区中的 EC2 实例)。

任何帮助将不胜感激!

解决方法

我看起来有 open feature request on kubernetes-sigs/aws-ebs-csi-driver 存储库,但在这方面没有进展。所以我猜它目前不受支持,但您可以监控问题以获取更新。