在kubernetes中使用ceph rbd作为挂载存储,当pod出现异常退出时,有可能会被编排到另外的节点上运行,而rbd不会随着pod的偏移而解除与原先节点的挂载关系,须要手动解除挂载,假设data_pool存储池中的test_image镜像被占用。cookie
首先解除挂载code
umount /dev/rbd/data_pool/test_image
解除映射关系kubernetes
rbd unmap /dev/rbd/data_pool/test_image
一般状况下这样rbd就会解除占用,能够在其余节点上被挂载test
但有时候会报设备繁忙的错误,这时就须要在ceph中强制断开映射链接cli
先查询当前被占用的rbd状态map
rbd status data_pool/test_image
获得相似以下信息im
Watchers:
watcher=192.168.1.100:0/4102608192 client.1574653 cookie=3查询
将该链接加入黑名单异常
ceph osd blacklist add 192.168.1.100:0/4102608192
再次检查rbd状态co
rbd status data_pool/test_image
这时rbd应当处于空闲状态,这时只须要删除异常pod或等待pod自动恢复便可