低版本kubernetes节点卡死重置恢复方法

建议方案

彻底清理(强制删除所有容器/进程),建议使用此方法,kubelet重启后会自动重启拉起节点上的容器。

1. 先停止所有运行中的容器

bash 复制代码
docker stop $(docker ps -q)

2. 再删除所有容器(包括停止+运行)

bash 复制代码
docker rm $(docker ps -a -q)

3. 重启docker kubelet

bash 复制代码
systemctl restart docker && systemctl restart kubelet

兜底方案(非必要不使用)

一旦出现这种情况:

bash 复制代码
[root@master01 docker]# rm -rf containers/ overlay2/
rm: cannot remove 'containers/xxx/mounts/shm': Device or resource busy

merged 是容器运行时挂载点,被内核挂载占用,直接强删目录必报错

bash 复制代码
# 强制卸载所有挂载占用
umount -lf /var/lib/docker/containers/*/mounts/shm
umount -lf /var/lib/docker/overlay2/*/merged

# 批量强制卸载所有 kubelet 挂载(推荐)
mount | grep kubelet | awk '{print $3}' | xargs -I {} umount -l {}

# 杀死残留 shim 与 runc 僵尸进程
ps -ef | grep -E 'containerd-shim|runc' | grep -v grep | awk '{print $2}' | xargs kill -9

然后重启

bash 复制代码
systemctl restart docker && systemctl restart kubelet

使用兜底方案的特征

当出现如下日志核心异常点:

1. 致命问题:大量 containerd-shim 僵尸残留进程

arduino 复制代码
docker.service: Unit process xxx (containerd-shim) remains running after unit stopped.
This usually indicates unclean termination of a previous run

Docker 正常 stop 时无法回收容器 Shim 进程,大量残留僵尸进程占用 CRI 链路、命名空间、网络栈。

直接后果: docker 重启后资源锁不释放、容器操作阻塞、kubelet 调用 CRI 超时 → 容器运行时检测失败 → 节点 NotReady

2. Docker 内部元数据并发锁冲突(关键卡死点)

vbnet 复制代码
Error (Unable to complete atomic operation, key modified) deleting object [endpoint ...] retrying....

Docker 网络 endpoint/对象数据库原子操作失败、锁竞争 ,反复重试无法释放网络资源。 你的集群频繁创建/销毁 Pod、Calico 网络回收,叠加 ARM64 + Docker23.0.6 兼容性问题,网络层死锁

3. 持续 shim 断开清理告警

erlang 复制代码
cleaning up after shim disconnected

4. docker卡死

bash 复制代码
KubeletNotReady container runtime status check may not have completed yet

或者

bash 复制代码
Skipping pod synchronization err="container runtime status check failed"

或者

bash 复制代码
Ready: False KubeletNotReady: PLEG is not healthy: pleg was last seen active 3m27s ago; threshold is 3m0s

kubelet日志查看

bash 复制代码
journalctl -u kubelet --no-pager
相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
大勇前进2 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
yuzhi_liu2 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile2 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白802 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端
二月龙2 天前
PHP 接口返回统一响应封装,让前后端对接更省心
后端
盖伦发发2 天前
软件工程SOLID 五大设计原则
后端·软件工程