释放 Kubernetes 故障节点上的 RBD 卷
现象
- sts由于唯一性导致无法直接漂移,出现
Terminating
,以及长期init
状态的pod
- 我们也无法直接删除该
pod
,强制删除后依然无法完成启动。
- 原因
kubectl describe pod
查看对应的失败原因情况下,由于存储后端为ceph-rbd,而ceph-rbd的pvc为支持RWO。
Terminating
状态的pod的原因,无法完成unmap操作,也就是unattch操作,此时由于sts的唯一性,无法完成pod漂移操作,由于需要等待解绑操作的完成,则由于锁无法完成删除操作。- 长期
init
状态,由于存储后端为ceph-rbd,而ceph-rbd的pvc为支持RWO,在不同节点上无法完成attach操作。
如果是RWO则需要解决pvc无法挂载问题如下:
解决办法
故障节点登陆:
- 停止并删除其中的容器 docker stop xxx
- 卸载该卷 umount
- 解除绑定操作 unmap /dev/rbdx
故障节点不可登陆:
- 找到对应的images信息 kubectl get pv PVNAME -o yaml|awk ‘/imageName|pool/‘
查看该images信息状态 rbd status -p bigstorage csi-vol-24298ba1-2130-11ed-b43d-0e005bd3f3f6
将该关联拉黑. ceph osd blacklist add 172.199.1.0:0/286978028