【发布时间】:2019-09-12 13:48:32
【问题描述】:
有没有办法告诉 Kubernetes 在缩减之前或之后要杀死哪些 pod?例如,假设我有 10 个副本,我想将它们缩减为 5 个,但我希望某些副本在缩减后仍然存在,而其他副本则被杀死。这可能吗?
【问题讨论】:
-
您为什么要这样做?这可能是可能的,但这取决于您真正想要实现的目标,这可能会影响哪些解决方案对您来说是可行的。
-
@AmitKumarGupta 有一个应用程序可以根据一些指标来扩展 Pod,并且 Pod 会消耗一个队列。我想要的是仅在队列为空时杀死空闲的 Pod。
-
是否所有的 pod 都从同一个队列中读取?您是否担心 k8s 会杀死当前正在执行任务的 pod,并且在飞行途中这样做会使其处于不一致的状态?如果是这样,您可能正在尝试解决错误的问题。真正的问题是您没有优雅地处理任务失败。
-
@GrantDavidBachman 在这种情况下,在我的解决方案中,任务会转到队列的末尾,由另一个 pod 再次处理。问题是当我有一些大任务时。在这种情况下,当队列为空时,控制器将缩减 pod,不加选择地杀死空闲和工作的 pod,并让另一个 pod 处理该任务,即使它已完成 99%。
标签: kubernetes