EKS根据节点CPU利用率进行Pod调度

xlpyo6sf  于 2022-10-06  发布在  Kubernetes
关注(0)|答案(1)|浏览(169)

我想知道有没有办法根据节点的CPU使用率来调度Pod。EKS中的大多数pod都是在单个节点上调度的,即使其余节点还有大量的CPU。我们的cron作业正在尝试启动同一节点中的新Pod,但由于CPU较低而无法启动。我相信默认的Kube调度器应该会处理这个问题,但在我们的情况下却没有发生。

那么,是否可以将Pod设置为根据CPU利用率进行调度,或者我们是否可以使用节点选择器/关联性/资源请求和限制等调度策略来实现这一点,

提前谢谢!

wlwcrazw

wlwcrazw1#

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

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

编辑:

如果您绝对想要将Pod分布在不同的节点上,可以使用topology-spread-constraint

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

注意:使用ScheduleAnyway配置,调度器将优先分布Pod,如果不可能,它将无论如何对它们进行调度。您也可以通过设置DoNotSchedule来选择不允许

相关问题