我正在尝试使用"patch"命令更改现有 Kubernetes Pod 的优先级,但它返回错误,指出这不是可以修改的字段之一。我可以在部署规范中修补优先级,但这会导致重新创建 Pod(遵循定义的更新策略)。
基本思想是实现一种在概念上类似于 nice 级别的机制(对于我的应用程序),以便可以根据某些条件(由我的控制器)取消某些 Pod 的优先级,并在资源拥塞的情况下被默认调度程序抢占。但是如果没有拥塞,我不希望重新启动它们。
有没有办法解决这个问题,或者调度程序的工作方式中有一些固有的东西会阻止这样的事情正常工作?
优先级值根据在调度容器时分配给其部署的 PriorityClass 的优先级值应用于容器。对 PriorityClass 所做的任何更改都不会应用于已调度的 Pod,因此您必须重新部署 Pod 才能使优先级生效。
据我所知,
Pod 优先级将在 Pod 被调度时起作用。
-
首先,您需要创建
PriorityClasses
-
使用
priorityClassName
创建 Pod,并在 Pod 定义中提及priorityclass
。
如果您尝试为已经安排的 pod 添加优先级,我将不起作用。
供参考:https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#pod-priority