1. 程式人生 > 實用技巧 >解決k8s叢集中mount volume失敗的問題

解決k8s叢集中mount volume失敗的問題

有的時候,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裝置會自動掛載到新節點上。