GKE创建10GB持久化磁盘报错无效磁盘大小 PVC处于Pending状态排查
故障根因
- PV与PVC的命名空间不匹配:你手动创建的PV的
claimRef字段指定的绑定目标命名空间为vault,但实际PVC创建在vault-ppd命名空间下,二者命名空间不一致,因此无法完成绑定。 - GCP区域持久化磁盘容量限制:你使用的StorageClass配置了
replication-type: regional-pd,也就是使用GCP区域级持久化磁盘,这类磁盘出于多副本冗余设计的要求,官方规定最小容量为200GB,你申请的10GB容量不符合云服务商底层资源限制,直接触发创建报错。
修复方案
- 修正PV的claimRef配置
将PV定义中的claimRef.namespace从vault改为vault-ppd,和实际PVC所在命名空间保持一致,配置示例如下:
apiVersion: v1 kind: PersistentVolume metadata: name: pv-vault-ppd spec: storageClassName: "balanced-persistent-disk" capacity: storage: 10Gi # 若继续使用regional PD需要调整为200Gi及以上 accessModes: - ReadWriteOnce claimRef: namespace: vault-ppd # 修正为PVC实际所在的命名空间 name: pv-vault-ppd-claim gcePersistentDisk: pdName: gke-vault-volume fsType: ext4
- 按需调整磁盘类型或容量
- 若必须使用区域级持久化磁盘,将PV和PVC的
storage容量都调整为200Gi及以上,同时提前在GCP控制台创建好对应容量的regional PD,确保pdName和实际磁盘名称一致。 - 若不需要区域级冗余,可以将StorageClass的
replication-type改为none使用单可用区的zonal PD,这类磁盘最小支持10GB容量,符合你的需求,修改后StorageClass配置如下:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: balanced-persistent-disk provisioner: pd.csi.storage.gke.io parameters: type: pd-standard replication-type: none # 改为单可用区磁盘 volumeBindingMode: WaitForFirstConsumer allowedTopologies: - matchLabelExpressions: - key: topology.gke.io/zone values: - europe-west1-b - europe-west1-c - europe-west1-d
- 重新应用配置
删除当前已创建的异常PV、PVC资源,重新应用修改后的配置即可完成绑定。
内容的提问来源于stack exchange,提问作者Rabah DevOps
相关产品推荐
相关产品推荐

