【问题标题】:Adding PersistentVolumeClaim on a different namespace with error 'failed to provision volume with StorageClass.. Missing provisioningMode parameter"在不同的命名空间上添加 PersistentVolumeClaim 并出现错误“无法使用 StorageClass 提供卷。缺少 provisioningMode 参数”
【发布时间】:2022-01-17 09:29:09
【问题描述】:

我正在关注 https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html 将 EFS 链接到 EKS。 我的 k8s 集群下有两个命名空间:devstage,据我了解,我需要两个 PersistentVolumeClaims 映射到共享的 PersistentVolume 和 StorageClass。因此,在我运行以下 3 个命令后:

kubectl apply -f specs/pv.yaml
kubectl apply -f specs/claim.yaml
kubectl apply -f specs/storageclass.yaml

kubectl get sc,pv,pvc1 -n dev,我可以很好地看到所有 3 个项目。但是,当我尝试添加到 stage 命名空间 - kubectl apply -f specs/claim.yaml --namespace=stage 时,由于 efs-claim 陷入永久 PENDING 状态,因此出现以下错误:

Name:          efs-claim
Namespace:     stage
StorageClass:  efs-sc
Status:        Pending
Volume:        
Labels:        <none>
Annotations:   volume.beta.kubernetes.io/storage-provisioner: efs.csi.aws.com
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      
Access Modes:  
VolumeMode:    Filesystem
Used By:       foo-api-stage-chart-12345-abcde
               foo-api-stage-chart-12345-abcde
Events:
  Type     Reason                Age                From                                                                              Message
  ----     ------                ----               ----                                                                              -------
  Normal   Provisioning          107s               efs.csi.aws.com_ip-xxx  External provisioner is provisioning volume for claim "stage/efs-claim"
  Warning  ProvisioningFailed    107s               efs.csi.aws.com_ip-xxx  failed to provision volume with StorageClass "efs-sc": rpc error: code = InvalidArgument desc = Missing provisioningMode parameter
  Normal   ExternalProvisioning  4s (x8 over 107s)  persistentvolume-controller                                                       waiting for a volume to be created, either by external provisioner "efs.csi.aws.com" or manually created by system administrator

是什么原因

efs.csi.aws.com_ip-xxx 无法使用 StorageClass "efs-sc" 配置卷:rpc 错误:code = InvalidArgument desc = Missing provisioningMode 参数

我不必在 dev 命名空间上提供这样的参数,那么为什么像 stage 这样的不同命名空间需要它?

【问题讨论】:

    标签: amazon-web-services kubernetes persistent-volumes amazon-efs persistent-volume-claims


    【解决方案1】:

    要解决您看到的错误,请使用以下命令重新应用您的 StorageClass:

    ...
    parameters:
      provisioningMode: efs-ap
      fileSystemId: <ID of the file system created on EFS>
    ...
    

    如果多个 pod 将读取/写入文件系统,请使用以下命令重新应用 PersistentVolume:

    ...
    spec:
      ...
      accessModes:
      - ReadWriteMany
    ...
    

    如果问题仍然存在,请在您的问题中发布您的 StorageClass、PersistentVolumeClaim 和 PersistentVolume 规范。

    【讨论】:

      猜你喜欢
      • 2019-10-18
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 2011-11-26
      • 2020-04-23
      • 2022-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多