解決k8s叢集中mount volume失敗的問題
阿新 • • 發佈:2020-09-17
有的時候,k8s中掛載了rbd儲存的pod重啟後會持續處於ContainerCreating的狀態,describe後發現有MountVolume.Setup failed以及Unable to mount volumes for pod xxx的錯誤描述。
這種情況看上去是rbd裝置掛載到pod上失敗,但真實原因往往是pod遷移後,在原節點上map的rbd裝置沒有正常遷移走導致的。
這個時候應該執行的是手動從原節點上unmap掉這個rbd裝置。
一、找到rbd裝置map的節點
通過kubectl get pvc找到這個pvc所繫結的pv。
然後根據這個pv,在叢集中的節點上執行:
rbd showmapped
找到這個pv所map的節點和rbd裝置。
二、檢視掛載點
看一下這個rbd裝置有沒有掛載點(應該是沒有)。
執行:
findmnt -n [rbd裝置]
如果沒有輸出表明沒有掛載點。如果輸出類似/var/lib/kubelet/plugins/kubernetes.io/rbd/*,表明掛載點有誤,需要手動刪除掛載點。
執行:
unmount [掛載點]
三、手動unmap
確保沒有掛載點之後,執行
rbd unmap [rbd裝置]
手動將這個rbd裝置unmap掉。
過一段時間後,新的rbd裝置會自動掛載到新節點上。