我正在尝试了解Openshift中持久卷声明的不同访问模式。从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绑定到单个项目/命名空间,也可以扩展到不同的项目。
但是这里的混乱是什么,"单个节点"或者"许多节点"这意味着。例如,在RWO
模式下,"The volume can be mounted as read-write by a single node"
。 它指的是什么节点。
有人可以就单个项目/命名空间 向我提供这些模式的 重要性。 RWO存储是否只能对一个应用程序或项目中的所有应用程序具有写入权限?
答案 0 :(得分:6)
整个RWO vs RWX概念与在多个主机上安装相同文件系统的问题有关,这需要支持诸如。分布式锁定。有一些特定的实现可以处理这个,例如。 NFS,Ceph,GlusterFS等通常是面向网络/集群的文件系统。如果您尝试同时将它们安装在不同的服务器上,则其他文件系统无法正常运行(通常它们不允许这样做)。
因此,在这种情况下,节点意味着特定的kubernetes集群节点(无论是裸机服务器还是虚拟机)。但是,通过扩展,你应该在POD的范围内考虑它,因为在大多数情况下,pod可以在不同的节点上旋转,这意味着它们不能使用相同的卷,或者你不能假设这个卷将具有连贯的共享状态,就像会发生的那样。使用群集中每个节点唯一的HostPath卷。
澄清以下问题:
RWO卷一般与pod有1:1的关系。虽然在某些情况下您可以将RWO卷定义为指向与hostPath相同的物理资源,但从技术上讲,它们将始终紧密耦合到一个POD。如果您使用PhysicalVolumes / PhysicalVolumeClaims对象,这将特别可见,这将考虑将PV绑定到PVC的这些限制。 只有RWX卷可以为您提供由多个pod共享的存储,所有pod都可以写入。