Ubuntu 库伯内特斯:我如何设置一个工作/吊舱的最短寿命?

Ubuntu 库伯内特斯:我如何设置一个工作/吊舱的最短寿命?,ubuntu,kubernetes,kubernetes-pod,kubernetes-jobs,Ubuntu,Kubernetes,Kubernetes Pod,Kubernetes Jobs,在我的主节点上,我正在运行Kubernetes v1.16.3,用户将不时向我们的服务器提交一些作业,这些作业目前正在运行。然而,在我的例子中,我有很多用户,他们不仅应该在他们的工作上有优先权,而且还应该有每个工作/pod的最短生存期 最短生存期应保证作业至少运行5小时。如果我们的资源得到充分利用,并且用户提交的作业优先级高于当前正在运行的作业,则只有那些已超过最短生存期的正在运行的作业才应被逐出 我找不到解决这个问题的办法。我只能找到一个最大生存期解决方案(),它表示在提供的时间过期后,作业/

在我的主节点上,我正在运行Kubernetes v1.16.3,用户将不时向我们的服务器提交一些作业,这些作业目前正在运行。然而,在我的例子中,我有很多用户,他们不仅应该在他们的工作上有优先权,而且还应该有每个工作/pod的最短生存期

最短生存期应保证作业至少运行5小时。如果我们的资源得到充分利用,并且用户提交的作业优先级高于当前正在运行的作业,则只有那些已超过最短生存期的正在运行的作业才应被逐出

我找不到解决这个问题的办法。我只能找到一个最大生存期解决方案(),它表示在提供的时间过期后,作业/pod将被逐出的生存期的持续时间。但那不是我想要的。我想创建一个作业/pod,该作业/pod受保护运行5小时,在指定时间过后,该作业/pod应仍在运行,但当另一个新作业出现时(例如,该作业的最短生存期为3小时)旧运行的作业/吊舱应被逐出,新创建的作业/吊舱应取代其位置并运行至少3个小时,然后才能成为被另一个作业杀死的候选人


在库伯内特斯,这有可能实现吗?或者有没有一个解决办法来实现这一点呢?

库伯内特斯的调度程序无法直接理解时间。您可以设置PriorityClass和PodDisruptionBudgets(在本例中,预算为maxDisruptions 0),用于控制自愿驱逐。可能会编写一些在一定时间后更改PriorityClass值的内容,但我不知道有什么现成的方法,这将是一个自定义运算符