You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NotReady节点ContainerGCFailed告警解析及原因排查咨询

节点NotReady状态与ContainerGCFailed告警排查解析

告警与节点状态原始信息

1. ContainerGCFailed告警事件

Events:
  Type     Reason             Age                   From     Message
  ----     ------             ----                  ----     -------
  Warning  ContainerGCFailed  58s (x1775 over 30h)  kubelet  rpc error: code = ResourceExhausted desc = grpc: trying to send message larger than max (16797216 vs. 16777216)

2. 节点状态条件详情

Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Sat, 19 Nov 2022 17:17:30 -0600   Wed, 16 Nov 2022 22:28:31 -0600   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Sat, 19 Nov 2022 17:17:30 -0600   Wed, 16 Nov 2022 22:28:31 -0600   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Sat, 19 Nov 2022 17:17:30 -0600   Wed, 16 Nov 2022 22:28:31 -0600   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            False   Sat, 19 Nov 2022 17:17:30 -0600   Fri, 18 Nov 2022 11:03:06 -0600   KubeletNotReady              PLEG is not healthy: pleg was last seen active 30h17m27.791101751s ago; threshold is 3m0s

核心问题解析

  1. ContainerGCFailed告警:kubelet执行容器垃圾回收时触发gRPC错误,要发送的消息大小(约16MB)超过了gRPC默认的16MB最大消息限制,导致垃圾回收失败。该告警30小时内重复触发1775次,说明问题持续存在未得到解决。
  2. 节点NotReady状态:节点就绪状态为False,直接原因是PLEG(Pod生命周期事件生成器)不健康——PLEG已超过30小时未活跃,远高于3分钟的健康阈值。PLEG负责实时监控容器状态变化,一旦它停摆,kubelet无法感知Pod和容器的状态,节点直接进入NotReady状态。

可能原因排查

  • 容器GC消息超限:节点上堆积了大量已终止容器或镜像,kubelet收集GC相关信息时生成的gRPC消息刚好超出默认限制,导致垃圾回收持续失败,进而占用kubelet资源影响其他模块运行。
  • PLEG依赖的容器运行时异常:PLEG需要从容器运行时(如containerd、Docker)获取状态数据,如果容器运行时响应缓慢、卡死,或存在大量未清理的容器元数据,会导致PLEG无法正常完成状态查询,最终停摆。
  • kubelet内部资源竞争或版本bug:容器GC的持续失败可能占用了kubelet的内部线程或内存资源,导致PLEG的健康检查线程无法正常调度;也可能是kubelet版本存在已知bug,比如未适配大数量容器场景下的gRPC消息大小,或PLEG健康检查逻辑存在漏洞。

内容的提问来源于stack exchange,提问作者DmitrySemenov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:45:30