提问者:小点点

根据节点CPU利用率的EKS吊舱调度


我想知道是否有办法根据节点CPU利用率来安排pod。我们在ek中的大多数pod都被安排在单个节点上,即使其余的节点还有很多CPU。我们的cron作业试图在同一个节点上启动新pod,但由于CPU低而无法启动。我相信默认的库贝调度程序应该处理这个问题,但在我们的情况下并没有发生。

那么,是否有根据CPU利用率设置pod以调度的选项,或者我们是否可以通过节点选择器/亲和力/资源请求等调度策略来实现这一点

提前感谢!


共1个答案

匿名用户

调度程序依赖于为pod设置的CPU请求,而不是CPU使用率。

您需要设置一个足够高的CPU请求,以便调度程序知道已经包含pod的节点不够,并将其调度到能够托管它的另一个节点上。

编辑:

如果您绝对想将您的pod分布在不同的节点上,您可以使用拓扑分布约束

topologySpreadConstraints: 
- maxSkew: 1 
   topologyKey: kubernetes.io/hostname 
   whenUnsatisfiable: ScheduleAnyway 
   labelSelector: 
     matchLabels:
       app: myApp

注意:使用< code>ScheduleAnyway配置,调度程序将优先分配pod,如果不可行,它将对它们进行调度。您也可以通过设置< code>DoNotSchedule来选择不让他