低版本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
相关推荐
IT_陈寒9 小时前
React中useEffect依赖项这个坑我居然踩了三天
前端·人工智能·后端
提笔了无痕10 小时前
如何用Go实现整套RAG流程
开发语言·后端·golang
成都第一深情IZZO10 小时前
事务未提交就发送 MQ,导致消费者读不到订单数据的问题
后端
大橙子打游戏11 小时前
Fable5不能用了,但是依然能让 AI 纯靠截图玩通宝可梦
后端
Jason_chen11 小时前
Linux 3.0 总线机制与故障排查详解
后端
成都第一深情IZZO11 小时前
Spring Boot 动态数据源在事务中切库失效问题排查
后端
_遥远的救世主_11 小时前
稳定性工程:SLO 量化、降级收敛与故障兜底体系
后端
_遥远的救世主_11 小时前
多区域架构:边缘节点、核心节点与跨区域写冲突
后端
ServBay11 小时前
你跟高级 C# 工程师的区别,就是这8个开发技巧
后端·c#·.net
卷无止境11 小时前
Python CLI 应用开发最佳实践全面指南
后端