Bootstrap

解决 Kubernetes 节点上的挂载点卡住问题:一次深入探索

引言

        在Kubernetes的日常操作中,我们可能会遇到各种各样的挑战和问题。最近,我遇到了一个特别棘手的问题:即使Pod 和Persistent Volume (PV) 已经被删除,它们之间的挂载关系仍然存在,导致整个集群的节点都无法使用 df -h 命令。本文将分享我是如何发现并解决这个问题的。

问题描述

        在Kubernetes集群的日常维护中,我们发现所有节点都无法正常执行 df -h 命令。这个命令通常用来查看文件系统的磁盘空间使用情况,它的卡住不仅影响了监控和日志分析,还暴露了可能存在的更深层次问题。

排查过程

  • 通过mount -l 查看是否有挂载了停用的nas,发现并没有

  • 通过lsblk查看磁盘识别是否正常,发现是挺正常的

  • 通过ls访问已挂载磁盘是否可以正常读取,发现也是正常的

  • 通过使用 strace df -h 命令进行跟踪

  • 因为kubectl的指令无法直接通过uid查找到pod,所以我们通过输出json结果,然后进行查找,发现并没有这个pod存在

kubectl get pods --all-namespaces -o json | jq --arg UID "025bbccb-93fe-447a-9270-6e2589d25a33" '.items[] | select

;