MongoDB Operator部署时PV容量小于PVC请求值是提供商还是K8s问题
问题结论
这个报错不属于Kubernetes已知问题,是你使用的存储提供商(CSI驱动/对应的存储后端)的实现逻辑导致的问题。
根因分析
你从kubectl describe pvc返回的报错内容里可以直接换算验证:
- 你申请的容量
10000000000字节是十进制单位的10GB,换算为二进制单位的Gi约为9.31Gi - 存储后端实际创建的容量
9663676416字节正好是9Gi
绝大多数存储后端的容量分配是按二进制Gi为最小对齐单位的,不支持任意字节容量的分配。你使用的tier1存储类对应的后端,在遇到非整数倍最小分配单元的申请时,会向下取整分配最近的整数倍容量,而Kubernetes的PVC校验规则要求实际分配容量不能小于申请容量,校验不通过就会抛出ProvisioningFailed错误。
修复方案
- 直接修改PVC的资源申请值为
10Gi(对应10737418240字节),存储后端会分配10Gi容量,满足PVC的申请要求即可正常完成供给 - 如果你需要使用更小的容量,可联系存储管理员确认
tier1存储类对应的最小分配单元,按最小单元的整数倍申请容量即可
内容的提问来源于stack exchange,提问作者jjrz
相关产品推荐
相关产品推荐

