为何Kubernetes中容量大于实际磁盘的Local PV与PVC仍可正常运行
问题场景原因分析
Kubernetes PV/PVC的绑定逻辑特性
默认情况下,Kubernetes对Local PV的capacity.storage字段仅做声明值匹配校验,不会主动探测PV对应挂载路径所在磁盘分区的实际可用容量。只要PV声明容量和PVC申请容量完全匹配,就会自动完成绑定,只要Pod本身没有其他调度异常,就能正常启动运行。精简制备(Thin Provisioning)的超额分配机制
你使用的精简制备磁盘本身就支持存储超售:分配给虚拟机的100GB是逻辑上限,底层物理磁盘只会在你实际写入数据的时候才按4K/8K这类块单位分配实际空间,当前仅占用20GB就是因为虚拟机内实际写入的数据量只有20GB,远未到逻辑容量上限,自然不会触发存储层面的容量错误。磁盘可用空间不足仅会在实际写入超限时报错
你当前根分区剩余88GB是实际可写入的物理空间上限,只要你后续往该PV写入的数据总量不超过88GB,就不会触发磁盘不足的IO错误。只有当实际写入数据超过了分区真实可用容量时,才会出现Pod报错、PV不可用的问题,当前没有写入超限自然运行正常。
内容的提问来源于stack exchange,提问作者Ian Campbell
相关产品推荐
相关产品推荐

