runc hang 导致 Kubernetes 节点 NotReady,这是为何?

2026-04-11 10:380阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3054个文字,预计阅读时间需要13分钟。

runc hang 导致 Kubernetes 节点 NotReady,这是为何?

Kubernetes 1.19.3,运行在CentOS 7.9.2009,内核5.4.94-1.el7.elrepo.x86_64,Docker 20.10.6。runc v1.0.0-rc93 存在bug,可能导致docker hang。线上报警提示集群中存在2-3个K8s节点处于NotReady状态。

Kubernetes 1.19.3

OS: CentOS 7.9.2009

Kernel: 5.4.94-1.el7.elrepo.x86_64

Docker: 20.10.6

先说结论,runc v1.0.0-rc93 有 bug,会导致 docker hang 住。

发现问题

线上告警提示集群中存在 2-3 个 K8s 节点处于 NotReady 的状态,并且 NotReady 状态一直持续。

  • kubectl describe node,有 NotReady 相关事件。

  • 登录问题机器后,查看节点负载情况,一切正常。

  • 查看 kubelet 日志,发现 PLEG 时间过长,导致节点被标记为 NotReady。

  • docker ps 正常。

  • 执行 ps 查看进程,发现存在几个 runc init 的进程。runc 是 containerd 启动容器时调用的 OCI Runtime 程序。初步怀疑是 docker hang 住了。

要解决这个问题可以通过两种方法,首先来看一下 A 方案。

阅读全文

本文共计3054个文字,预计阅读时间需要13分钟。

runc hang 导致 Kubernetes 节点 NotReady,这是为何?

Kubernetes 1.19.3,运行在CentOS 7.9.2009,内核5.4.94-1.el7.elrepo.x86_64,Docker 20.10.6。runc v1.0.0-rc93 存在bug,可能导致docker hang。线上报警提示集群中存在2-3个K8s节点处于NotReady状态。

Kubernetes 1.19.3

OS: CentOS 7.9.2009

Kernel: 5.4.94-1.el7.elrepo.x86_64

Docker: 20.10.6

先说结论,runc v1.0.0-rc93 有 bug,会导致 docker hang 住。

发现问题

线上告警提示集群中存在 2-3 个 K8s 节点处于 NotReady 的状态,并且 NotReady 状态一直持续。

  • kubectl describe node,有 NotReady 相关事件。

  • 登录问题机器后,查看节点负载情况,一切正常。

  • 查看 kubelet 日志,发现 PLEG 时间过长,导致节点被标记为 NotReady。

  • docker ps 正常。

  • 执行 ps 查看进程,发现存在几个 runc init 的进程。runc 是 containerd 启动容器时调用的 OCI Runtime 程序。初步怀疑是 docker hang 住了。

要解决这个问题可以通过两种方法,首先来看一下 A 方案。

阅读全文