pod has unbound immediate PersistentVolumeClaims : statefulset挂载不上pv的另一种情况

大家都知道当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)。
这种错误产生步骤如下:

  1. 创建一个1G的pv
  2. 创建了一个statefulset,但是要求的pv容量为2G
  3. 发现statefulset的yaml文件写错了,改成1G,kubectl delete statefulset xx,然后使用新的yaml
  4. 然后就发现statefulsetpod无论如何都成为了pending状态
  5. 原因就在于第三步删除statefulset的时候,自动创建的pvc没有删除,后面使用新的statefulset,pvc并不会自动刷新
  6. 可以使用代码kubectl get pvc 错误的pvc -o yaml查看这个pvc的创建yaml文档
原文地址:https://www.cnblogs.com/zhoushiya/p/12274465.html