首先,为这个问题提供一些背景信息。
EKS
1.15
集群EFS
- EKS
security group
/mount target
等工作正常 CSI
中 EFS
的 EKS
驱动程序已安装并按预期工作 efs-sc
的存储类,使用 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 的状态:
|__ 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/