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

Pod挂载卷大小与PVC声明不符问题求助(DigitalOcean K8s)

问题诊断与解决

核心原因

你遇到的问题根源在于预创建PV中的com.digitalocean.csi/noformat: "true"属性:

  • 这个属性会告诉DigitalOcean CSI驱动不要格式化挂载的块存储卷
  • 你创建的20Gi DigitalOcean块存储本身可能只初始化了一个368M的分区(或未正确格式化整个空间),所以挂载后只能识别到这部分空间
  • 自动创建PVC时,CSI驱动会自动格式化整个卷,因此能正常识别全部8Gi(Chart默认请求大小)空间,这也是Postgres Chart出现相同问题的原因

解决步骤

1. 清理现有绑定的存储资源

先删除当前的PVC和PV,解除卷的绑定:

kubectl delete pvc mongodb-listing-pvc
kubectl delete pv mongodb-listing-pv

2. 修复块存储的格式化问题(二选一)

方案A:让CSI驱动自动格式化卷

修改PV配置,移除volumeAttributes中的com.digitalocean.csi/noformat: "true"属性,重新创建PV:

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/provisioned-by: dobs.csi.digitalocean.com
  name: mongodb-listing-pv
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 20Gi
  csi:
    driver: dobs.csi.digitalocean.com
    fsType: ext4
    volumeHandle: 0bb18717-38ba-11ed-a3a1-0a58ac14e4bf
  persistentVolumeReclaimPolicy: Retain
  storageClassName: do-block-storage
  volumeMode: Filesystem

方案B:手动格式化整个块存储

如果需要保留noformat属性,需要先手动格式化整个20Gi卷:

  1. 创建一个临时DigitalOcean Droplet,将该块存储挂载到Droplet上
  2. 登录Droplet,执行格式化命令(替换为你的卷ID):
    mkfs.ext4 /dev/disk/by-id/scsi-0DO_Volume_mongodb-listing
    
  3. 卸载卷并销毁临时Droplet,然后重新创建原来的PV配置

3. 重新部署应用

创建PVC并重新安装Helm Chart:

kubectl apply -f mongodb-listing-pvc.yaml
helm upgrade --install mongodb-listing bitnami/mongodb -f your-values.yaml

验证

部署完成后进入Pod,执行df -h命令,确认/bitnami/mongodb挂载的卷大小显示为20Gi左右,即可确认问题解决。

内容的提问来源于stack exchange,提问作者Alexandre Godard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:40:33