簡體   English   中英

是否可以使用 AWS EFS 訪問點在 EKS 中安裝 kubernetes 持久卷?

[英]Is it possible to use AWS EFS access points to mount a kubernetes persistent volume in EKS?

首先要為這個問題提供一些背景信息。

  • 我有一個版本 >= 1.15EKS集群
  • EFS - EKS security group / mount target等工作正常
  • EKSEFSCSI驅動程序已安裝並按預期工作
  • 我已經部署了一個名為efs-sc的存儲 class,使用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接入點是這樣配置的

在此處輸入圖像描述

那么這是一個限制嗎? 我錯過了什么?

我正在尋找這個解決方案efs-provisioner但我看不出這將從當前配置中解決什么問題。

似乎正在發生的事情是路徑/access-point-path在您安裝的文件系統中不存在。

使用接入點時,接入點指定的路徑掛載為文件系統的/

假設這是您的EFS的 state :

|__ access-point-path/

當您使用/access-point-path中的訪問點將其掛載到部署中時,它只會看到一個空文件夾,因為access-point-path文件夾現在是部署的根目錄 ( / )。 沒有要綁定access-point-path文件夾。

這就是/有效而access-point-path/無效的原因。

現在有可用的文檔: 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 驅動程序不再支持動態綁定,因此,需要為每個 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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM