You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes持久卷(Azure磁盘)容量显示异常问题咨询

解决Azure磁盘PV手动扩容后状态与实际存储不一致的问题

问题根源

Kubernetes中PV的spec.capacity.storage仅为etcd记录的声明式状态,手动修改不会触发后端Azure磁盘的实际扩容。强行将PV容量改为1000Gi后,CSI驱动扩容失败,但etcd中的PV状态已更新,导致集群状态与实际存储(9Gi)不一致,进而引发PVC报错。

解决步骤

1. 对齐PV状态与实际存储容量

先将PV容量改回Azure磁盘的实际值9Gi,消除状态差异:

  • 编辑PV:
    kubectl edit pv <你的PV名称>
    
    在编辑器中修改spec.capacity.storage为9Gi,保存退出。
  • 或用patch命令快速修改:
    kubectl patch pv <你的PV名称> -p '{"spec":{"capacity":{"storage":"9Gi"}}}'
    
    执行后用kubectl get pv <你的PV名称>确认容量已恢复为9Gi。

2. 排查1000Gi扩容失败原因

从报错resize requested for 10, but after resizing volume size was 9分析,可能的问题包括:

  • 单位识别错误:CSI驱动可能将1000Gi识别为其他单位(如10Ti),导致请求容量超出限制。
  • Azure磁盘SKU限制:部分特殊SKU的磁盘存在扩容上限,可登录Azure门户查看磁盘SKU及最大允许容量。
  • CSI驱动版本问题:旧版本Azure Disk CSI驱动可能存在扩容逻辑bug,建议升级至最新稳定版。
  • StorageClass配置缺失:确认绑定PV的StorageClass已开启allowVolumeExpansion: true。

3. 使用标准扩容流程(禁止手动修改PV)

Kubernetes存储扩容的正确方式是通过PVC触发,流程如下:

  1. 验证StorageClass配置:
    kubectl describe storageclass <你的StorageClass名称>
    
    确认AllowVolumeExpansion字段为True。
  2. 编辑PVC修改请求容量(先尝试小容量如10Gi验证):
    kubectl edit pvc <你的PVC名称>
    
    修改spec.resources.requests.storage为目标值。
  3. 查看PVC事件跟踪扩容进度:
    kubectl describe pvc <你的PVC名称>
    
    正常情况下,CSI驱动会自动同步PV容量与Azure磁盘实际容量。

4. 修复PVC报错状态

PV状态恢复后,若PVC仍报错:

  • 将PVC的spec.resources.requests.storage改回9Gi,与PV容量匹配。
  • 重启使用该PVC的Pod,让Pod重新挂载存储恢复正常。
  • PVC状态正常后,再按标准流程尝试扩容至合理目标容量。

内容的提问来源于stack exchange,提问作者Tomer Aharon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 19:57:35