了解 openshift 中的持久卷声明模式

Understanding persistent volume claim modes in openshift

我正在尝试了解 Openshift 中 Persistent Volume Claims 的不同访问模式。从here

中找到以下信息
Access Mode         CLI Abbreviation             Description
ReadWriteOnce           RWO               The volume can be mounted as read-write by a single node.

ReadOnlyMany            ROX               The volume can be mounted read-only by many nodes.

ReadWriteMany           RWX               The volume can be mounted as read-write by many nodes.

我知道 PVC 绑定到单个 project/namespace 并且也可以扩展到不同的项目。

但是这里的困惑是,"single node"或"many nodes"在这里是什么意思。例如,在 RWO 模式下,"The volume can be mounted as read-write by a single node"它指的是什么节点

有人可以告诉我这些模式相对于单个 project/namespace 意义。 带RWO的存储是只能对一个应用程序有写权限还是对项目内的所有应用程序有写权限

整个 RWO vs RWX 概念与在多个主机上安装相同文件系统的问题有关,这需要支持 ie。分布式锁定。有一些特定的实现可以像 ie 一样处理这个问题。 NFS、Ceph、GlusterFS 等通常 network/cluster 面向文件系统。如果您尝试同时将它们安装在不同的服务器上,其他文件系统将无法正常运行(通常它们只是不允许这样做)。

因此,在这种情况下,节点表示特定的 kubernetes 集群节点(无论是裸机服务器还是虚拟机)。但是,推而广之,你也应该在 POD 的范围内考虑它,因为在大多数情况下 pods 可以在不同的节点上旋转,这意味着它们不能使用相同的卷,或者你不能假设这个卷会具有连贯的共享状态,就像会发生的那样。使用集群中每个节点唯一的 HostPath 卷。

澄清以下问题:

RWO 卷通常与 pod 有 1:1 关系。虽然在某些情况下,您可以定义 RWO 卷以指向相同的物理资源(如 hostPath),但从技术上讲,它们将始终紧密耦合到一个 POD。如果您使用 PhysicalVolumes / PhysicalVolumeClaims 对象,这将特别可见,这将考虑将 PV 绑定到 PVC 的这些限制。 只有 RWX 卷才能为您提供由多个 pods 共享的存储,并且所有 pods 都可以写入它