根据本官方文档,Kubernetes持久卷支持三种类型的访问模式。1.只读多个1.读写一次1.读写次数文档中给出的它们的定义是非常高层次的。如果有人能更详细地解释它们,沿着提供一些不同用例的示例,我们应该使用一个与另一个的对比,那就太好了。
i86rm4rw1#
如果您计划让Pod需要向卷“写入”数据,而不仅仅是从卷“读取”数据,则应使用ReadWriteX。如果您希望Pod能够在Kubernetes集群中的不同节点上运行工作负载时访问给定卷,则应该使用XMany。这些Pod可能是属于一个Deployment的多个副本,也可能是完全不同的Pod。在许多情况下,希望Pod运行在不同的节点上,例如,如果您为单个Deployment提供多个Pod副本,则需要使用XMany。则使它们在不同的节点上运行可以帮助确保一定量的持续可用性,即使其中一个节点发生故障或正在被更新。如果你不使用XMany,但你有多个Pod需要访问给定的卷,这将迫使Kubernetes计划所有这些Pod在卷首先装载到的任何节点上运行,如果有太多这样的Pod,这可能会使该节点过载,并可能影响其Pod需要访问该卷的部署的可用性,如前一段所述。所以把所有这些放在一起:
ReadWriteX
XMany
ReadWriteMany
ReadWriteOnce
ReadOnlyMany
ReadOnlyOnce
containers.volumeMounts.readOnly
true
ru9i0ody2#
only
z9zf31ra3#
在Kubernetes中,您可以静态(使用存储类)或动态(持久卷)配置存储。一旦存储可用于绑定和声明,您需要配置Pod或节点连接到存储(持久卷)的方式。可以在以下四种模式中配置。1.ReadOnlyMany(ROX)在此模式下,运行在不同Node上的多个Pod可以连接到存储并执行读操作。1.ReadWriteMany(RWX)在此模式下,运行在不同Node上的多个Pod可以连接到存储并执行读写操作。1.读写一次(RWO)在此模式下,多个Pod只运行在一个Node上,可以连接到存储上进行读写操作。1.ReadWriteOncePod(RWOP)在此模式下,卷可以由单个Pod以读写方式挂载。如果您想确保整个集群中只有一个Pod可以读取或写入该PVC,请使用ReadWriteOncePod访问模式。仅支持CSI卷和Kubernetes 1.22+版本。请参阅文档以获得更多信息。
3条答案
按热度按时间i86rm4rw1#
如果您计划让Pod需要向卷“写入”数据,而不仅仅是从卷“读取”数据,则应使用
ReadWriteX
。如果您希望Pod能够在Kubernetes集群中的不同节点上运行工作负载时访问给定卷,则应该使用
XMany
。这些Pod可能是属于一个Deployment的多个副本,也可能是完全不同的Pod。在许多情况下,希望Pod运行在不同的节点上,例如,如果您为单个Deployment提供多个Pod副本,则需要使用XMany
。则使它们在不同的节点上运行可以帮助确保一定量的持续可用性,即使其中一个节点发生故障或正在被更新。如果你不使用
XMany
,但你有多个Pod需要访问给定的卷,这将迫使Kubernetes计划所有这些Pod在卷首先装载到的任何节点上运行,如果有太多这样的Pod,这可能会使该节点过载,并可能影响其Pod需要访问该卷的部署的可用性,如前一段所述。所以把所有这些放在一起:
ReadWriteMany
是K8s集群的卷插件中的一个选项,请使用ReadWriteMany
。ReadWriteMany
根本不适合您,请使用ReadWriteOnce
。ReadOnlyMany
是K8s集群的卷插件的一个选项,请使用ReadOnlyMany
。ReadOnlyMany
根本不适合您,请使用ReadWriteOnce
。在这种情况下,你想要这个卷是只读的但是你的卷插件的限制迫使你选择ReadWriteOnce
(没有ReadOnlyOnce
选项)。作为一个好的实践,考虑在Pod规范中将containers.volumeMounts.readOnly
设置为true
,用于与只读卷对应的卷挂载。ru9i0ody2#
1. ReadOnlyMany -该卷可被多个节点只读挂载
2. ReadWriteMany -该卷可被多个节点读写挂载
3. ReadWriteOnce -卷可由单个节点以读写方式装载
only
节点上,并且只能执行读取操作。z9zf31ra3#
在Kubernetes中,您可以静态(使用存储类)或动态(持久卷)配置存储。一旦存储可用于绑定和声明,您需要配置Pod或节点连接到存储(持久卷)的方式。可以在以下四种模式中配置。
1.ReadOnlyMany(ROX)
在此模式下,运行在不同Node上的多个Pod可以连接到存储并执行读操作。
1.ReadWriteMany(RWX)
在此模式下,运行在不同Node上的多个Pod可以连接到存储并执行读写操作。
1.读写一次(RWO)
在此模式下,多个Pod只运行在一个Node上,可以连接到存储上进行读写操作。
1.ReadWriteOncePod(RWOP)
在此模式下,卷可以由单个Pod以读写方式挂载。如果您想确保整个集群中只有一个Pod可以读取或写入该PVC,请使用ReadWriteOncePod访问模式。仅支持CSI卷和Kubernetes 1.22+版本。
请参阅文档以获得更多信息。