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

标签 amazon-web-services kubernetes terraform amazon-eks amazon-efs

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

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

  • 但是......它只有在它是根路径时才有效/定义为 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接入点是这样配置的

    enter image description here

    那么这是一个限制吗?我错过了什么?

    我正在寻找这个解决方案 efs-provisioner但我看不出这将从当前配置中解决什么问题。

    最佳答案

    现在有可用的文档:https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/access_points/README.md#create-access-points-in-efs
    您需要使用更新的 EFS CSI 驱动程序。访问点在 PersistentVolume 的 volumeHandle 下定义。 .最近的 EFS CSI 驱动程序不再支持动态绑定(bind),因此,需要为每个 PersistentVolumeClaim 手动创建 PersistentVolume。

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: efs-pv1
    spec:
      capacity:
        storage: 5Gi
      volumeMode: Filesystem
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      storageClassName: efs-sc
      csi:
        driver: efs.csi.aws.com
        volumeHandle: [FileSystemId]::[AccessPointId]
    

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

    相关文章:

    Terraform - 模块之间的依赖关系

    amazon-web-services - 将自定义指标添加到 CloudFormation 模板

    amazon-web-services - 在AWS Beanstalk上部署docker仅提供html文件,不提供其他文件

    amazon-web-services - 如何根据云形成模板中的阶段设置环境变量

    angular - K8s/Angular CORS 问题 REST 服务器

    azure - Azure 上的 Kubernetes - 事件和就绪探针失败 - 事件探针失败,连接 : connection refused

    Terraform 0.12-从嵌套的for循环生成 map /对象

    terraform - Terraform 中的嵌套 map 数据

    amazon-web-services - 更新用于 Amazon 机器学习 ML 模型的数据源

    docker - 如何保存容器的任何更改?