gpt4 book ai didi

kubernetes - 如何降低kubernetes系统资源的CPU限制?

转载 作者:行者123 更新时间:2023-12-03 20:50:11 24 4
gpt4 key购买 nike

我想将 GKE 集群中的核心数保持在 3 以下。如果 K8s 复制 Controller 和 pod 的 CPU 限制从 100m 减少到最多 50m,这将变得更加可行。否则,仅 K8s pod 就占用一个内核的 70%。

我决定不增加节点的 CPU 能力。在我看来,这在概念上是错误的,因为 CPU 限制被定义为以内核为单位来衡量。相反,我做了以下事情:

  • 用“50m”作为默认 CPU 限制的版本替换 limitranges/limits(不是必需的,但在我看来更干净)
  • 修补 kube-system 命名空间中的所有复制 Controller 以将 50m 用于所有容器
  • 删除他们的 pod
  • 用所有容器使用 50m 的版本替换 kube-system 命名空间中的所有非 rc pod

  • 这是很多工作,可能很脆弱。即将推出的 K8s 版本的任何进一步更改或 GKE 配置的更改都可能会破坏它。

    那么,有没有更好的办法呢?

    最佳答案

    更改默认命名空间的 LimitRange spec.limits.defaultRequest.cpu应该是更改新 Pod 的默认值的合法解决方案。请注意,LimitRange 对象是命名空间的,因此如果您使用额外的命名空间,您可能需要考虑它们的合理默认值。

    正如您所指出的,这不会影响 kube-system 命名空间中的现有对象或对象。

    kube-system Namespace 中的对象大多是根据经验确定大小的——基于观察到的值。更改这些可能会产生不利影响,但如果您的集群非常小,则可能不会。

    我们有一个 Unresolved 问题 ( https://github.com/kubernetes/kubernetes/issues/13048 ) 可以根据总集群大小调整 kube-system 请求,但尚未实现。我们还有另一个 Unresolved 问题 ( https://github.com/kubernetes/kubernetes/issues/13695 ) 可能对某些 kube 系统资源使用较低的 QoS,但同样 - 尚未实现。

    其中,我认为 #13048 是实现您所要求的正确方法。目前,“有没有更好的方法”的答案是“不”。我们为中型集群选择了默认值 - 对于非常小的集群,您可能需要做您正在做的事情。

    关于kubernetes - 如何降低kubernetes系统资源的CPU限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33391748/

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