首先,为这个问题提供一些背景信息。

  • 我有一个版本 >= EKS
  • 1.15 集群
  • EFS - EKS security group/mount target 等工作正常
  • CSIEFSEKS 驱动程序已安装并按预期工作
  • 我已经部署了一个名为 efs-sc 的存储类,使用 EFS CSI 驱动程序作为配置器
  • 我可以访问 pod 上的 EFS

  • 但是……它仅在根路径 / 被定义为 kubernetes 持久卷资源定义中的路径时才有效。

    使用 Terraform 0.12 语法的示例
    resource "kubernetes_persistent_volume" "vol" {
      metadata {
        name = "my-vol"
      }
      spec {
        capacity = {
          storage = "15Gi"
        }
        access_modes = ["ReadWriteMany"]
        storage_class_name = "efs-sc"
        persistent_volume_reclaim_policy = "Recycle"
        persistent_volume_source {
          nfs {
            path = "/" # -> OK it works properly
            # path = "/access-point-path" -> NOT WORKING
            server = var.efs-storage-apt-server
          }
        }
      }
    }
    

    当我尝试指定接入点的路径时,卷的安装失败。
    efs 接入点是这样配置的

    amazon-web-services - 是否可以使用 AWS EFS 访问点在 EKS 中挂载 kubernetes 持久卷?-LMLPHP

    那么有限制吗?我错过了什么?

    我正在寻找这个解决方案 efs-provisioner 但我不知道这会从当前的配置中解决什么问题。

    最佳答案

    似乎正在发生的事情是路径 /access-point-path 在您挂载的文件系统中不存在。

    当您使用访问点时,访问点指定的路径被挂载为文件系统的 /

    假设这是您的 EFS 的状态:

    |__ access-point-path/
    

    当您使用 /access-point-path 中的访问点将其挂载到部署中时,它只会看到一个空文件夹,因为 access-point-path 文件夹现在是部署的根目录 ( / )。没有要绑定(bind)的 access-point-path 文件夹。

    这就是 / 有效而 access-point-path/ 无效的原因。

    关于amazon-web-services - 是否可以使用 AWS EFS 访问点在 EKS 中挂载 kubernetes 持久卷?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61378144/

    10-11 10:54