我想在 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)中使用它。
替代解决方案
如果自动配置对您来说是一项硬性要求,您可以考虑以下替代解决方案: 您可以在集群上部署多种分布式文件系统,这些系统提供ReadWriteMany
Kubernetes 和/或 AWS 之上的存储。例如,您可能会看一下Rook https://rook.io/(它基本上是 Ceph 的 Kubernetes 操作符)。它正式仍处于预发布阶段,但我已经使用过它一点并且运行得相当不错。
还有GlusterFS 操作符 https://github.com/gluster/gluster-kubernetes,似乎已经有一些稳定版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)