大家都知道当volumeClaimTemplates
匹配不上pv
时,会出现statefulset
挂载不到pv的问题。错误提示如下:
error while running "VolumeBinding" filter plugin for pod "web-2": pod has unbound immediate PersistentVolumeClaims
如果你反复确认了volumeClaimTemplates
是正确的,但是始终挂载不上,可以尝试检查以下pvc
,看是不是statefulset
之前自动创建的错误的pvc
没有删除,导致后面statefulset
的yaml文件怎么更改也没生效(刷新pvc)。
这种错误产生步骤如下:
- 创建一个1G的
pv
- 创建了一个
statefulset
,但是要求的pv
容量为2G - 发现
statefulset
的yaml文件写错了,改成1G,kubectl delete statefulset xx
,然后使用新的yaml - 然后就发现
statefulset
的pod
无论如何都成为了pending状态 - 原因就在于第三步删除
statefulset
的时候,自动创建的pvc
没有删除,后面使用新的statefulset
,pvc
并不会自动刷新 - 可以使用代码
kubectl get pvc 错误的pvc -o yaml
查看这个pvc的创建yaml文档