繁体   English   中英

是否可以对 pod 实施硬性 memory 限制?

[英]Is it possible to enforce a hard memory limit on pods?

容器可以超过其 memory 请求 [...]。 如果 Container 分配的 memory 超过其限制,则该 Container 成为终止的候选者。

文档中我了解到设置资源限制不能限制 pod 的 memory 使用。

我有一个容器,它总是会用完所有可用的 memory,但 function 也会用少量的 memory。 有什么方法可以对运行容器的 pod 可用的 memory 数量设置硬限制?

由于在 Docker 中是可能的,我希望在 Kubernetes中也有办法实现这一点,但我找不到这样做的方法。

标准requestlimits是可能的。 首先查看官方文档页面

当你指定一个Pod时,你可以选择指定一个容器需要多少每个资源。 最常见的指定资源是 CPU 和 memory (RAM); 还有其他人。

当您为 Pod 中的容器指定资源请求时,调度程序会使用此信息来决定将 Pod 放置在哪个节点上。 当您为 Container 指定资源限制时,kubelet 会强制执行这些限制,以便正在运行的容器不允许使用超过您设置的限制的资源。 kubelet 还至少保留了该系统资源的请求量,专门供该容器使用。

在 kubernetes 中,如果您想专门为给定容器预留最小数量的 memory,您应该使用request 另一方面,如果你想强制容器不能使用比你指定的更多的 memory,你必须使用limit

这是一个例子:

resources:
  limits:
    cpu: 500m
    memory: 1Gi
  requests:
    cpu: 500m
    memory: 2Gi

另请参阅这篇关于在 Kubernetes 中设置正确请求和限制的精彩文章。

正常的请求和限制应该有效。 文档可能具有误导性。 Pod 不会 go 超出 memory 限制,如果他们尝试这样做会导致 OOM 和崩溃(重新启动)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM