更改Pod优先级而不重启Pod?

时间:2019-01-29 01:49:51

标签: kubernetes controller scheduler

我正在尝试使用'patch'命令更改现有Kubernetes Pod的优先级,但是它返回错误,指出这不是可以修改的字段之一。我可以在Deployment规范中修补优先级,但这会导致Pod重新创建(遵循定义的更新策略)。

基本思想是实现一种概念上类似于尼斯级别(对于我的应用程序)的机制,以便可以根据某些条件(由我的控制器)取消对某些Pod的优先级设置,并在发生以下情况时被默认调度程序抢占资源拥塞。但是我不希望它们在没有拥塞的情况下重新启动。

有没有解决的办法,或者调度程序的工作方式中固有的某些功能会阻止类似的功能正常工作?

2 个答案:

答案 0 :(得分:1)

优先级值是基于在计划Pod时分配给其部署的PriorityClass的优先级值应用于Pod的。对PriorityClass所做的任何更改都不会应用于已安排好的pod,因此您必须重新部署pod才能使优先级始终生效。

答案 1 :(得分:0)

据我所知

在安排广告连播时,广告连播优先级将起作用。

  1. 首先,您需要创建PriorityClasses

  2. 使用priorityClassName创建Pod,并在pod定义中提及priorityclass

如果您要为已安排好的Pod添加优先级,则无法使用。

以供参考:https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#pod-priority