大家都知道當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文檔
