【问题标题】:How do I trigger a MemoryPressure state in Kubernetes如何在 Kubernetes 中触发 MemoryPressure 状态
【发布时间】:2020-09-06 06:37:42
【问题描述】:

出于测试的目的,我试图让我的 kubernetes 集群触发 MemoryPressure 状态,但我似乎无法让它发生。即使我收到警告“内存不足”,运行 kubectl 描述 pod 仍然显示 MemoryPressure == false。

我通过创建一个运行容器的部署来做到这一点: 压力-ng -m 4 --vm-bytes 800M --vm-keep

我一直在缩放,直到看到内存不足——但仍然没有 MemoryPressure 标志!

我在 KIND 和 Minikube 上尝试过,但没有成功。有什么想法吗?

【问题讨论】:

标签: kubernetes


【解决方案1】:

MemoryPressure 是一个节点指标。您可以直接在节点上运行stress 命令以在节点上创建人为的内存压力。 Kubelet 会注意到这一点(有一个警告),并且应该报告该节点位于 MemoryPressure 下。

doc 的警告是

kubelet 当前轮询 cAdvisor 以在 有规律的间隔。如果该窗口内的内存使用量增加 很快,kubelet 可能无法足够快地观察 MemoryPressure,并且 OOMKiller 仍将被调用。我们打算与 未来版本中的 memcg 通知 API 以减少此延迟,以及 而是让内核告诉我们何时超过阈值 马上

【讨论】:

  • 好的,所以要明确一点:MemoryPressure 状态不可能完全通过 pod 中的活动发生——对吗?
猜你喜欢
  • 1970-01-01
  • 2021-07-28
  • 2015-07-18
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 2020-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多