Kubernetes节点CPU利用率

时间:2020-07-29 21:56:53

标签: kubernetes autoscaling aws-auto-scaling hpa

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

到目前为止,我已经了解了cluster-autoscalerHPA,但不确定它们是否可以帮助我解决用例。

根据我所读的内容:

  • cluster-autoscaler用于基于副本计数与目标ec2实例上的resources.request与可用CPU VS的比较来自动缩放节点-这不是基于流量/实际CPU使用情况
  • HPA基于CPU /实际cpu使用情况,但适用于单个Pod

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

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

1 个答案:

答案 0 :(得分:1)

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

  • 基于Pod的CPU /内存的HPA,例如,按比例缩放K8s部署。

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

  • 集群自动缩放器。当Pod挂起且无处可运行时,它可以工作,但是,如果您正在处理上述情况,则这更像是一种安全的故障机制,或者对于不需要非常快地处理的工作负载而言。

总而言之,您可以使用以上(或更少)的全部3种方法,但必须查看对您有用的方法,以使它们不会相互冲突。一个潜在的问题是,当您的云ASG开始按比例缩小时,您还具有处于挂起状态的Pod,那么群集自动缩放器(如果已启用)将启动,并且您可能都试图使它们自动执行相反的操作,从而导致群集只是无法安排任何广告连播。

✌️☮️

相关问题