gpt4 book ai didi

kubernetes:如何在内存限制阈值上重启 pod

转载 作者:行者123 更新时间:2023-12-04 17:19:39 26 4
gpt4 key购买 nike

我有一个内存限制的部署

resources:
limits:
memory: 128Mi

但是我的应用程序在接近内存限制时开始失败,那么,有什么方法可以在它达到内存限制的百分比之前重新启动 pod?

例如,如果限制是 128Mi,当它达到它的 85% 时重新启动 pod。

最佳答案

我将从 Kuberentes 方面来解决这个问题。

正如 arjain13 已经提到的,您想到的解决方案是行不通的,因为它违背了 Requests and limits 的想法。 :

If you set a memory limit of 4GiB for that Container, the kubelet (andcontainer runtime) enforce the limit. The runtime prevents thecontainer from using more than the configured resource limit. Forexample: when a process in the container tries to consume more thanthe allowed amount of memory, the system kernel terminates the processthat attempted the allocation, with an out of memory (OOM) error.

您还可以找到 Exceeding a Container's memory limit 的示例:

A Container can exceed its memory request if the Node has memoryavailable. But a Container is not allowed to use more than its memorylimit. If a Container allocates more memory than its limit, theContainer becomes a candidate for termination. If the Containercontinues to consume memory beyond its limit, the Container isterminated. If a terminated Container can be restarted, the kubeletrestarts it, as with any other type of runtime failure.

在您当前的用例中,我建议您尝试两件事:

  1. 调试您的应用程序以消除可能是此问题根源的内存泄漏。

  2. 使用 livenessProbe :

Indicates whether the container is running. If the liveness probefails, the kubelet kills the container, and the container is subjectedto its restart policy.

可以使用以下字段进行配置:

  • initialDelaySeconds:容器启动后到启动事件或就绪探测之前的秒数。默认为 0 秒。最小值为 0。

  • periodSeconds:执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

  • timeoutSeconds:探测超时后的秒数。默认为 1 秒。最小值为 1。

  • successThreshold:探测失败后被视为成功的最小连续成功数。默认为 1。必须为 1 才能活跃。最小值为 1。

  • failureThreshold:当探测失败时,Kubernetes 会在放弃前尝试failureThreshold 次。在 liveness probe 的情况下放弃意味着重新启动容器。在就绪探测的情况下,Pod 将被标记为未就绪。默认为 3。最小值为 1。

如果您为 periodSecondstimeoutSecondssuccessThresholdfailureThreshold 设置最小值,您可以期望更频繁检查和更快的重启。

您将在下面找到一些有用的资源和指南:

关于kubernetes:如何在内存限制阈值上重启 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66996065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com