Kubenetes排障:Orphaned Pod 孤儿pod处理

959 阅读1分钟

Orphaned Pod 孤儿pod处理

查看节点kubelet的ERROR日志

E0606 15:10:09.311322  732595 kubelet_volumes.go:154] Orphaned pod "007d83b7-4b65-11ec-901d-fa163e71473d" found, but volume paths are still present on disk : There were a total of 344 errors similar to this. Turn up verbosity to see them.

问题原因

Pod 异常退出,导致数据卷挂载点在卸载过程中没有清理干净,最终导致Pod沦为僵尸Pod。Kubelet的GC流程对数据卷垃圾回收实现并不完善,需要手动或脚本自动化实现垃圾挂载点的清理工作。

处理方法

提示total of 344 errors similar to this,有344个。。只有处理完显示的podid后,才能显示下一个podid,我们需要一个个删除对应目录

$ sudo ls /var/lib/kubelet/pods/007d83b7-4b65-11ec-901d-fa163e71473d
plugins  volumes
$ sudo rm /var/lib/kubelet/pods/007d83b7-4b65-11ec-901d-fa163e71473d -rf

为了快速获取到所有Orphaned Pod信息,我们尝试调整kubelet的日志等级

$ sudo ls -l /var/lib/kubelet/pods/ |wc -l
1136
# 调整kubelet日志等级查看全部孤儿pod
$ sudo vi /etc/default/kubelet
KUBELET_EXTRA_ARGS="--allow-privileged=true \
  -v=10"
# 重启kubelet让日志生效
$ sudo systemctl restart kubelet

# 再去日志中查看podid,本次问题我重启kubelet后就恢复了
$ sudo ls -l /var/lib/kubelet/pods/ |wc -l
15

相关issue

github.com/kubernetes/…