2

我正在尝试(学习)找出在 k8s节点上利用 CPU(和 RAM)的最佳方法。我的最终目标是确保集群中每个节点的 CPU 利用率高于 X%

到目前为止,我已经阅读了有关cluster-autoscalerHPA的信息,但不确定它们是否会帮助我解决用例。

从我读到的:

  • cluster-autoscalerresources.request用于根据副本数和目标 ec2 实例上的可用 CPU之间的比较来自动缩放节点- 这不是基于流量/实际 CPU 使用率
  • HPA基于 CPU/实际 CPU 使用率,但针对单个 pod

我基本上想达到一个kubectl top nodes显示所有节点正在使用> X%(比如说60%)的地步 - 如果我们达到X2%(比如说80%),理想情况下会触发自动缩放

关于如何处理这个用例的任何建议/指针?(或者我应该以某种方式使用这两种自动缩放机制的组合)

4

1 回答 1

1

您可以组合使用 HPA 或/和集群自动缩放器和/或云提供商的自动缩放组。

  • 例如,基于 pod 的 CPU/内存的 HPA 并扩展和缩减 K8s 部署。

  • 云提供商 ASG 或自动缩放组。使用基于虚拟机或实例,您可以根据自己的 CPU 和内存指标进行扩展和缩减。

  • 集群自动扩缩器。当 pod 处于挂起状态并且它们无处可运行时,它可以工作,但如果您正在处理上述情况,这更像是一种安全的故障机制,或者可能用于不需要很快出现的工作负载。

总之,您可以使用以上所有 3 个(或更少),但您必须查看哪些对您有用,以免它们相互冲突。一个潜在的问题是,当您的云 ASG 开始缩减时,您的 pod 也处于挂起状态,然后您的集群自动扩缩器(如果您启用了它)将启动,您可能会让它们都试图做相反的事情,导致集群只是无法安排任何吊舱。

✌️☮️

于 2020-07-30T06:39:48.743 回答