后端存储为vsphere时,如何解决K8s PVC扩容失败的问题?
问题根因
这个报错是因为你集群当前用的vSphere存储插件没有注册卷扩容能力,K8s 1.18自带的树内vSphere存储插件默认没开扩容相关的特性开关,所以识别不到扩容能力。
修复步骤
- 首先先确认你用的vCenter版本是6.7U3及以上,这是vSphere存储支持K8s PVC扩容的最低版本要求,版本不达标的话先升级vCenter。
- 如果你继续用自带的树内vSphere存储插件,按以下操作配置:
- 给所有控制节点的
kube-controller-manager、所有工作节点的kubelet添加启动参数:--feature-gates=ExpandCSIVolumes=true,ExpandInUsePersistentVolumes=true - 重启这两个组件让配置生效
- 配置完成后直接编辑PVC的
spec.resources.requests.storage字段为2Gi,就能自动触发扩容 - 要是不想开在线扩容,也可以先删除挂载这个PVC的Pod,等PVC没被使用的时候再改容量,扩容完再重建Pod就行
- 给所有控制节点的
- 如果你打算长期使用,推荐迁移到vSphere外置CSI驱动:
树内vSphere存储插件已经被官方弃用,后续不会再更新功能,外置CSI驱动原生支持扩容能力,不需要额外开特性门控,你用K8s 1.18的话部署2.0.x版本的vSphere CSI驱动就能兼容。
注意事项
allowVolumeExpansion: true哪怕是在PVC创建之后才加到StorageClass里的,也对存量PVC生效,不需要重新创建PVC。
内容的提问来源于stack exchange,提问作者Mohamed
相关产品推荐
相关产品推荐

