AWS 上的 Kubernetes PVC 与 ReadWriteMany

2023-12-27

我想在 AWS 上设置 PVC,我需要ReadWriteMany作为访问模式。不幸的是,EBS仅支持ReadWriteOnce.

我该如何解决这个问题?

  • 我看到 AWS EFS 有一个测试版提供商,它支持ReadWriteMany,但正如所说,这仍然是测试版,它的安装看起来有些不稳定。
  • 我可以使用节点亲和力将所有依赖 EBS 卷的 pod 强制到单个节点,并保持不变ReadWriteOnce,但这限制了可扩展性。

还有其他方法可以解决这个问题吗?基本上,我需要的是一种以持久方式存储数据的方法,以便在彼此独立的 Pod 之间共享数据。


使用 EFS 而不自动配置

EFS 配置程序可能是测试版,但 EFS 本身不是。由于 EFS 卷可以通过 NFS 挂载,因此您只需创建一个PersistentVolume手动使用 NFS 卷源 - 假设自动配置对您来说不是硬性要求:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-efs-volume
spec:
  capacity:
    storage: 100Gi # Doesn't really matter, as EFS does not enforce it anyway
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  mountOptions:
    - hard
    - nfsvers=4.1
    - rsize=1048576
    - wsize=1048576
    - timeo=600
    - retrans=2
  nfs:
    path: /
    server: fs-XXXXXXXX.efs.eu-central-1.amazonaws.com

然后,您可以使用PersistentVolumeClaim并像往常一样在一个 Pod(或多个 Pod)中使用它。

替代解决方案

如果自动配置对您来说是一项硬性要求,您可以考虑以下替代解决方案: 您可以在集群上部署多种分布式文件系统,这些系统提供ReadWriteManyKubernetes 和/或 AWS 之上的存储。例如,您可能会看一下Rook https://rook.io/(它基本上是 Ceph 的 Kubernetes 操作符)。它正式仍处于预发布阶段,但我已经使用过它一点并且运行得相当不错。 还有GlusterFS 操作符 https://github.com/gluster/gluster-kubernetes,似乎已经有一些稳定版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS 上的 Kubernetes PVC 与 ReadWriteMany 的相关文章

随机推荐