我正在搜索有关 kubernetes 请求和限制的特定信息,但仍然没有找到答案或只是不太了解。假设我为单个 Pod 定义了两个容器 A 和 B,都具有资源限制和请求:
答: RAM请求:1Gi 内存限制:2Gi 乙: RAM请求:1Gi 内存限制:2Gi
因此,我们的 PoD 限制为 4Gi(总计)。假设 A 容器超出限制(比如 +1Gi),但 B 仅消耗 64Mi。所以,我的问题是:
谢谢!
答案 0 :(得分:2)
只是补充一些细节
内存请求:是否为容器预留的内存,是否完全使用。
内存限制:是此容器应该使用的最大内存的限制。因此,当容器内存请求超过时,是否分配取决于当时运行该容器的机器中可用的空闲内存
根据我的理解回答您的问题:
如果容器 A 达到其 2GI 的内存限制,它将 OOM 并重新启动容器。
如果容器 A 超过其 1GI 的内存请求,它会尝试从机器的可用内存中获取所需的内存(最大到设置的限制)
希望这能解答您的疑问
答案 1 :(得分:2)
豆荚怎么了?被驱逐了吗?
如果超出容器的内存限制,则调用内核的 OOM 杀手并终止容器的进程。然后 Pod 在同一个节点上启动一个新容器。
(CPU 限制使用不同的机制(CFS 带宽控制)来限制进程的 CPU 周期而不是终止进程。)
<块引用>容器A重启了吗?
是的。
<块引用>容器 A 是否允许使用容器 B 的可用 RAM?
对每个容器单独跟踪内存。它们没有汇集到同一个限制中。