【问题标题】:changing Pod priority without restarting the Pod?在不重新启动 Pod 的情况下更改 Pod 优先级?
【发布时间】:2019-01-29 01:49:51
【问题描述】:

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

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

有没有办法绕过它,或者调度程序的工作方式固有的某些东西会阻止这样的事情正常工作?

【问题讨论】:

  • 这对您的情况有帮助吗? kubernetes.io/docs/concepts/configuration/…
  • @mattew 这是我希望使用的机制,但我无法更改正在运行的 pod 的(补丁)优先级。
  • 最近我做了类似的事情,我根据默认创建了一个新的调度器,这个新的调度器检查 pod 的“nice”标签,并在 pod 优先级相等时根据“nice”值抢占 pod . 无需重启 pod 即可更新 pod 的标签。

标签: kubernetes controller scheduler


【解决方案1】:

优先级值根据在调度 pod 时分配给其部署的 PriorityClass 的优先级值应用于 pod。对 PriorityClass 所做的任何更改都不会应用于已经安排好的 pod,因此您必须重新部署 pod 才能使优先级生效。

【讨论】:

    【解决方案2】:

    据我所知

    Pod 优先级将在 Pod 被调度时起作用。

    1. 首先你需要创建PriorityClasses

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

    如果您尝试为已安排的 pod 添加优先级,我将无法工作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-24
      • 2019-12-24
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 2023-03-14
      • 2019-03-10
      • 2020-06-02
      相关资源
      最近更新 更多