Kubernetes Pod 在调度后立即失败并显示 OutOfMemory 状态

Kubernetes Pod 在调度后立即失败并显示 OutOfMemory 状态

我正在裸机 Kubernetes 集群(版本 1.22.1)上测试我的应用程序,在将我的应用程序作为作业启动时遇到问题。

我的集群有两个节点(主节点和工作节点),但工作节点已被封锁。在主节点上,有 21GB 内存可供应用程序使用。

我尝试同时将我的应用程序作为三个不同的作业启动。由于我将 16GB 内存设置为资源请求和限制,因此只有一个作业启动,其余两个处于待处理状态。我已将作业的 backoffLimit: 0 设置为作业。

NAME            READY   STATUS     RESTARTS   AGE
app1--1-8pp6l   0/1     Pending    0          42s
app2--1-42ssl   0/1     Pending    0          45s
app3--1-gxgwr   0/1     Running    0          46s

第一个 Pod 完成后,两个处于 Pending 状态的 Pod 中只有一个应该启动。然而,一个已启动,而另一个处于 OutOfMemory 状态,尽管 Pod 中尚未启动任何容器。

NAME            READY   STATUS        RESTARTS   AGE
app1--1-8pp6l   0/1     Running       0          90s
app2--1-42ssl   0/1     OutOfmemory   0          93s
app3--1-gxgwr   0/1     Completed     0          94s

OutOfMemory Pod 的事件如下:

Events:
  Type     Reason            Age                   From               Message
  ----     ------            ----                  ----               -------
  Warning  FailedScheduling  3m41s (x2 over 5m2s)  default-scheduler  0/2 nodes are available: 1 Insufficient memory, 1 node(s) were unschedulable.
  Normal   Scheduled         3m38s                 default-scheduler  Successfully assigned test/app2--1-42ssl to master
  Warning  OutOfmemory       3m38s                 kubelet            Node didn't have enough resource: memory, requested: 16000000000, used: 31946743808, capacity: 37634150400

看起来 Pod 已被分配给节点,尽管由于另一个 Pod 刚刚启动,没有足够的空间。

我猜这不是 Kubernetes 的预期行为,有人知道这个问题的原因吗?

答案1

这是1.22.x版本的已知问题 - 您可以找到有关此问题的多个 GitHub 和 Stackoverflow 主题,例如:

1.23 版本已修复此问题

  • 修复一个回归问题,该问题导致 Kubelet 在决定是否允许更多 Pod 时无法将已经完成的 Pod 从当前使用的资源数量的计算中排除。(#104577@smarterclayton

因此请将您的 Kubernetes 集群升级到最新的稳定版本。

我希望它能帮助你,但请记住即使修复了这个问题,Github 上仍然有另一个类似的问题(提及这里大约 10 天前(2022 年 1 月 13 日的状态):

为完整起见,链接至此处 - 修复后可能会出现类似症状,如#106884。kubelet 认为终止 pod 的资源正在使用中(确实如此!),但调度程序会忽略终止 pod 并调度新的 pod。由于 kubelet 现在考虑终止 pod,因此它会拒绝那些快速重新调度的 pod。

那么,可能唯一的解决办法就是降级到1.21版本。

答案2

您能发布 pod 的 yaml 吗?

我的一个客户也遇到过类似的事情,他们的内存限制写错了(860m 而不是 860Mi),值得一看

相关内容