将多个附加EBS作为EKS的持久存储。

0

【以下的问题经过翻译处理】 我有一个运行在EC-2服务器上的数据科学云IDE,附加有一个多附加EBS卷。该卷包含用户主目录和共享库。记录一下,这个IDE是RStudio Workbench,但不确定是否有什么区别。 我想为这个IDE设置一个Kubernetes集成。我考虑了两个选项:

  • EKS托管节点组
  • EKS Fargate

对于这两个选项,我都能够实现集成,这不是问题。问题是为了使集成有用,需要能够挂载该卷以获取用户数据和库的pod。

如果我们省略此要求,Fargate看起来像是我们的完美选择。但我知道它仅支持EFS挂载。我正在考虑使用EFS而不是EBS。但是有关EFS速度的担忧。我做了一些测试,在一些日常任务中可以注意到它的速度。所以我想把这个选项放在一边,先尝试使用EKS托管的节点组找出一些解决办法。

我尝试从一个单独的ec-2启动NFS服务器,将EBS附加到它上面(它支持多附加),并将NFS挂载到pod。但似乎当有像这样的附加卷的IDE进程启动时,它会破坏NFS服务器。

从理论上讲,可以为Kubernetes pods实现持久的EBS卷声明,但不清楚多附加--到主服务器和pod--是否会起作用。

所以我有一个一般性问题:我在这些尝试中做了些愚蠢的事情,我应该直接使用EFS + Fargate吗?或者是否有一个可行的设置,使得主服务器和Kubernetes都可以同时访问同一个 EBS?如果是这样,它会是什么样子?

1 回答
0

【以下的回答经过翻译处理】 你好,感谢联系我们 :)

针对你的问题:

在理论上,Kubernetes pod 可以实现针对 EBS 持久卷的声明,但目前不清楚是否支持多连接,即主服务器和 pod 都连接 EBS。

在这种情况下,主服务器和 pod 连接 EBS 是不可行的,因为 Kubernetes 不支持此功能。在 GitHub上有一个相关的开放的 Issue:https://github.com/kubernetes-sigs/aws-ebs-csi-driver/issues/449。由于众多的读写操作需要主服务器和 pod 均能访问 EBS 持久卷,这可能导致一些问题,而且 CSI 存储驱动程序也不支持此功能。

参考文件 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html

标准文件系统不能同时被多台服务器(例如 EC2 实例)访问,如 XFS 和 EXT4。在标准文件系统上使用 Multi-Attach,可能会导致数据丢失或破坏,因此对于生产工作负载而言是不安全的。为了确保数据弹性和可靠性,你可以使用群集文件系统。

那么有没有可行的设置方案,能让主服务器和 Kubernetes 同时访问一个 EBS 呢?如果有,看起来会是什么样子?

服务器将是一个实例,并且 Kubernetes 工作节点也将是一个实例,且仿照上述情况,EBS 驱动会被同时访问。

我试着从另一个 ec-2 实例上启动 NFS 服务器,并将其连接到 EBS(它支持多连接),然后将 NFS 挂载到 pod 中,但似乎当像这样附加卷时启动IDE进程,会导致 NFS 服务器中断。

在这种情况下,当 pod 是

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则

相关内容