我使用Kubernetes副本运行“run-to-completion”任务。

我目前增加副本的数量,当我们有一个工作项,完成在队列和容器立即消耗的项目。由于所需的副本从未改变,Kubernetes揭开序幕一个新的副本,然后发现没有什么可以做,因此立即终止(重复)。如果我按比例缩小的复制品集装箱完成之前(即只要一个队列项被消耗),正在做的工作副本之一过早终止。

有没有减少副本,而不是强制终止的方法吗?

分析解答

因此,当容器终止它等待一段时间,你可以添加termination grace period所有吊舱。

您还可以在生命周期中加入SIG项也是特定吊舱,如果不采取下一个项目从队列中。

lifecycle:
          preStop:
            exec:
              # SIGTERM triggers a quick exit; gracefully terminate instead
              command: ["/usr/sbin/nginx","-s","quit"]

你也可以看看这个:https://cloud.google.com/blog/products/gcp/kubernetes-best-practices-terminating-with-grace