如何在多个容器之间共享 CPU 配额?

时间:2021-07-28 04:00:19

标签: linux docker kubernetes docker-compose cgroups

假设我有一个包含 3 个容器的 Pod:XYZ

K8S 可以为 Pod 中的每个容器设置 CPU 限制。但是,如果我为每个容器设置 1000M CPU 限制,那么即使其他两个是 ilde,任何容器也不能使用超过 1000M 个 CPU,这不是我想要的。

我想为 Pod 而不是每个容器设置 3000M 的 CPU 配额。例如,如果 XY 空闲,< strong>Z 可以使用 3000M CPU;如果 X 正在使用 1500M CPU,Y 正在使用1000M CPU,那么 Z 只能使用 500M CPU。

所以,我的问题是:

如何在多个容器之间共享 CPU 配额?

2 个答案:

答案 0 :(得分:2)

<块引用>

我必须设置限制,因为我必须向云提供商支付使用费。

在这种情况下,我建议您将 Vertical-Pod-AutoScalerLimit Range 一起使用。

LimitRange 提供的约束可以:

  • 强制规定命名空间中每个 Pod 或容器的最小和最大计算资源使用量。

并且 VPA 将尝试根据当前使用情况将建议上限设置在 limitRanges 的最小值和最大值之间。

注意:确保您在集群中安装了 metrics-server 以启用 VPA。

答案 1 :(得分:0)

根本不要设置 CPU 限制。或者将其设置为更高的值。设置 CPU 限制应该只在已知需要的情况下进行,通常它们弊大于利。