![](/img/trans.png)
[英]How can I mount an EFS volume to a kubernetes cluster running on AWS ubuntu18 instances as Persistent Volume?
[英]Is it possible to use AWS EFS access points to mount a kubernetes persistent volume in EKS?
首先要為這個問題提供一些背景信息。
1.15
的EKS
集群EFS
- EKS
security group
/ mount target
等工作正常EKS
中EFS
的CSI
驅動程序已安裝並按預期工作efs-sc
的存儲 class,使用EFS CSI
驅動程序作為配置器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/
無效的原因。
您需要使用更新的 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.