【问题标题】:How to share a CPU quota among multiple containers? [closed]如何在多个容器之间共享 CPU 配额? [关闭]
【发布时间】:2021-10-03 19:56:31
【问题描述】:

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

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

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

所以,我的问题是:

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

【问题讨论】:

    标签: linux docker kubernetes docker-compose cgroups


    【解决方案1】:

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

    【讨论】:

    • 我必须设置限制,因为我必须向云提供商支付我的使用费用。
    • EKS+Fargate 或 GKE Autopilot 设置之一?这很难,那里真的没有答案。
    【解决方案2】:

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

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

    LimitRange 提供的约束可以:

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

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

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

    【讨论】:

    • 这可以帮助随着时间的推移改变限制,但对短期爆发没有帮助。 VPA 关注的是几天的滚动平均值,而不是几秒。
    猜你喜欢
    • 1970-01-01
    • 2016-12-16
    • 2019-07-22
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多