所以我有一个ROX PVC和PV,我安装在一个吊舱。
在挂载到pod时,我将readOnly设置为false:
Volumes:
test-volume:
Type: PersistentVolumeClaim
ClaimName: pvc-1
ReadOnly: false
字符串
当我尝试通过执行kubectl exec command
来写入这个pod时,它通过了,而我希望它失败,因为PV是用P2P模式ROX创建的。
有人能解释一下这是怎么可能的吗?
所以我有一个ROX PVC和PV,我安装在一个吊舱。
在挂载到pod时,我将readOnly设置为false:
Volumes:
test-volume:
Type: PersistentVolumeClaim
ClaimName: pvc-1
ReadOnly: false
字符串
当我尝试通过执行kubectl exec command
来写入这个pod时,它通过了,而我希望它失败,因为PV是用P2P模式ROX创建的。
有人能解释一下这是怎么可能的吗?
1条答案
按热度按时间v2g6jxz61#
根据kubernetes官方文档:
Kubernetes使用卷访问模式来匹配PersistentVolumeClaims和PersistentVolume。在某些情况下,卷访问模式也会限制PersistentVolume可以挂载的位置。一旦存储被挂载,卷访问模式不会强制执行写保护。即使访问模式被指定为ReadWriteOnce,ReadOnlyMany或ReadWriteMany,它们也不会对卷设置任何约束。例如,即使PersistentVolume被创建为ReadOnlyMany,也不能保证它是只读的。如果访问模式被指定为ReadWriteOncePod,则该卷受到限制,只能挂载在单个Pod上。
在您的情况下,您可能没有在PVC的accessModes中提到ReadOnlyMany,或者使用一些预先存在的卷,因此限制不会应用于卷,并且您能够执行写操作。
根据Google提供的ROX卷文档:
克隆包含数据的现有卷或创建新的动态卷,填充数据并将该卷转换为只读在PV和PVC清单文件中,将访问模式配置为只读多个
通过遵循上述步骤,您将能够实现所需的ROX功能。请参考以下来自Google文档的示例清单:
字符串