【问题标题】:AWS EFS Create a folder via AWS UI or CLIAWS EFS 通过 AWS UI 或 CLI 创建文件夹
【发布时间】:2020-03-11 13:34:18
【问题描述】:

我定义了一个使用 efs.csi.aws.com 驱动程序的 kubernetes PersistentVolume 资源。我的问题是,我想指定此卷的目标路径 (/app_data)。但是这个文件夹需要先存在,然后我才能开始使用PersistentVolumeClaims 将它们安装到容器中,否则会出现目标路径不存在的错误。我认为在配置 EFS 时可以在 AWS UI 或 CLI 中创建该文件夹。类似于 S3 的东西,您可以在其中在 AWS Web UI 中创建存储桶。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: app-pv
  namespace: my-app
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  storageClassName: app-efs-sc
  csi:
    driver: efs.csi.aws.com
    volumeHandle: fs-1234567
    volumeAttributes:
      path: "/app_data"

【问题讨论】:

  • 我的目标是在 app-pv PV 上拥有 /app_data 目录,通过 PVC 连接到某个 pod,我说得对吗?
  • 是的。我的解决方法是在容器中安装卷时使用subPath

标签: kubernetes kubernetes-helm amazon-efs


【解决方案1】:

它不是像解决方案那样的产品,但可以作为解决方法。 我建议使用 initContainer 来完成这项任务。您可以将整个 fs 挂载在 init 容器中并在那里创建目录 + 分配访问权限。这里是example answer

【讨论】:

  • 这就变成了先有鸡还是先有蛋的问题。所以即使使用initContainer,您也需要PersistentVolumePersistentVolumeClaims 来挂载它,因此您也会收到错误,因为路径不存在。
  • 是的,但是您可以为 init 容器创建一个单独的持久卷,该容器具有相同的 fs-id 但安装为 / 用于 initContainer。在那里你可以打电话给mkdir -p /app_data - 我相信这一步将是幂等的,即使目录存在它也不会改变任何东西。
  • 所以我还需要为那个单独的 PV 创建一个 PVC,因为一个 PV 映射到一个 PVC。我如何在 PVC 中指定使用这个 PV?我没有看到将 PVC 映射到 PV 的属性。
  • 特别是我通过使用相同的storageClassName 属性映射 pv pvc 进行了类似的配置 - 它是一个字符串。但似乎至少有one more 方法可以做到这一点。我还找到了issue in github that may be related to your question,它仍然是开放的。
猜你喜欢
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 2018-07-02
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多