Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 了解openshift中的持久卷声明模式_Kubernetes_Openshift_Openshift Enterprise - Fatal编程技术网

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

Kubernetes 了解openshift中的持久卷声明模式,kubernetes,openshift,openshift-enterprise,Kubernetes,Openshift,Openshift Enterprise,我试图了解Openshift中持久卷声明的不同访问模式。从中找到以下信息 我知道PVC绑定到单个项目/名称空间,也可以扩展到不同的项目 但是这里的困惑是,“单节点”或“多节点”在这里是什么意思。例如,在RWO模式下,“卷可以通过单个节点以读写方式装入”它所指的节点 有人能告诉我这些模式对于单个项目/名称空间的重要性吗带有RWO的存储是否只能对项目中的一个应用程序或所有应用程序具有写入权限?整个RWO与RWX概念都与在多台主机上安装同一文件系统有关,这需要支持ie分布式锁定等功能。有一些特定的实现

我试图了解Openshift中持久卷声明的不同访问模式。从中找到以下信息

我知道PVC绑定到单个项目/名称空间,也可以扩展到不同的项目

但是这里的困惑是,“单节点”或“多节点”在这里是什么意思。例如,在
RWO
模式下,
“卷可以通过单个节点以读写方式装入”
它所指的节点


有人能告诉我这些模式对于单个项目/名称空间的重要性吗带有RWO的存储是否只能对项目中的一个应用程序或所有应用程序具有写入权限

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

所以,在本例中,节点意味着特定的kubernetes集群节点(无论是裸机服务器还是虚拟机)。但是,通过扩展,您也应该在POD的范围内考虑它,因为在大多数情况下,POD可以在不同的节点上旋转,这意味着它们不能使用同一个卷,或者您不能假设该卷将具有一致的共享状态,例如,使用集群中每个节点都唯一的HostPath卷

为澄清以下问题:


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

另一个困惑是,假设3个POD(副本)为3个不同节点中的应用程序运行。如果选择存储RWO,是否意味着只有来自1个节点的1个POD可以写入该存储?你能解释一下吗?进一步澄清。如果将RWO与扩展的应用程序一起使用,如果实例被安排在与第一个pod不同的主机上,则后者的部署将挂起并最终失败。这是因为Kubernetes无法满足装载持久卷的要求,因为它已经装载到另一个节点上供第一个pod使用。简而言之,不要将RWO用于扩展应用程序或滚动部署。后者不会像只有一个副本那样工作,它会在部署过程中创建第二个副本。@GrahamDumpleton:如果我理解正确,1)仅对应用程序使用RWO,而不进行缩放/滚动部署。2) 仅将RWO用于一个POD/应用程序,但不用于多个应用程序。3) RWX适用于项目内的任何数量的应用程序/吊舱……您能确认这些点是否有效吗?不完全正确,对于缩放的吊舱,有使用RWO的有效案例。只是每个吊舱都有自己的容量,而不是共享的容量。想象一下数据库服务器集群——集群是在DB引擎中完成的,因此您所需要的只是引擎的专用存储空间——RWO正好提供了这一点(即,如果您直接在pod中定义卷或通过volumeClaimTemplate定义卷)。对于DeploymentConfig/ReplicationController/pod的正常用例,每个吊舱不会有唯一的RWO体积。对于那些试图学习基础知识的人来说,带上它,并进行有状态的设置,只是让人困惑。所以,是的,也有例外,但一步一个脚印。
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.