重启K8S节点部分pvc不能正常挂载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重启K8S节点部分pvc不能正常挂载相关的知识,希望对你有一定的参考价值。

Tags: 重启K8S节点部分pvc不能正常挂载
重启K8S节点部分pvc不能正常挂载
===
在本文中重点讲一下重启K8S节点之后部分pvc不能正常挂载的解决方案;

1. 故障发生:

??我们一台k8s计算节点出现故障,强制重启之后,有一个gitlab的pod启动的时候,通过kubectl describe pods gitlab查看的日志总是有报错:

Multi-Attach error for volume "pvc-76b54b6c-df46-11e7-a2f0-005056b12f99" Volume is already exclusively attached to one node and can‘t be attached to another 

2. 故障处理:

查看pv对应哪个rbd image,这个命令在安装kubectl命令的k8s节点执行

kubectl get pv pvc-1557d839-714f-11e9-8d1a-5065f3457c8c -o go-template=‘{{.spec.rbd.image}}‘

根据上一步输出的结果,在ceph节点上面查看rbd image的watcher,-p指定pool

sudo rbd status kubernetes-dynamic-pvc-199d4a26-714f-11e9-bb25-480fcf482f56 -p kube

根据输出的结果,登录到那台机器上面,在查看rbd images mapped关系

sudo rbd showmapped | kubernetes-dynamic-pvc-199d4a26-714f-11e9-bb25-480fcf482f56

最后一步,根据上一步命令的执行结果,在这台机器上面卸载rdb imags

sudo rbd unmap /dev/rbd8

然后再重启pod,发现pvc可以正常挂载了;

博文的更详细内容请关注我的个人微信公众号 “云时代IT运维”,本公众号旨在共享互联网运维新技术,新趋势; 包括IT运维行业的咨询,运维技术文档分享。重点关注devops、jenkins、zabbix监控、kubernetes、ELK、各种中间件的使用,比如redis、MQ等;shell和python等运维编程语言;本人从事IT运维相关的工作有十多年。2008年开始专职从事Linux/Unix系统运维工作;对运维相关技术有一定程度的理解。本公众号所有博文均是我的实际工作经验总结,基本都是原创博文。我很乐意将我积累的经验、心得、技术与大家分享交流!希望和大家在IT运维职业道路上一起成长和进步;

技术图片

以上是关于重启K8S节点部分pvc不能正常挂载的主要内容,如果未能解决你的问题,请参考以下文章

攻坚克难详解k8s持久化存储数据pvpvc存储问题

攻坚克难详解k8s持久化存储数据pvpvc存储问题

k8s之StorageClass

k8s 挂载卷介绍

ORACLE 11G RAC 节点重启问题

[云原生专题-38]:K8S - 核心概念 - 存储抽象- 空间大小可配置的目录挂载PV+PVC