将多个附加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 Antwort
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
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen