【问题标题】:Scaling Down Replicas On Completion Without Termination在不终止的情况下在完成时缩减副本
【发布时间】:2019-09-19 12:19:18
【问题描述】:

我正在使用 Kubernetes 副本来运行“运行到完成”任务。

目前,当我们在队列中有要完成的工作项并且容器立即使用该项目时,我会增加副本的数量。由于所需的副本从未改变,Kubernetes 启动一个新的副本,然后发现没有什么可做的,因此立即终止(并重复)。如果我在容器完成之前缩减副本(即,一旦队列项被消耗),正在工作的副本之一会过早终止。

有没有办法减少副本而不强制终止?

【问题讨论】:

    标签: kubernetes queue message-queue amazon-eks


    【解决方案1】:

    您可以为所有 pod 添加 termination grace period,以便在容器终止时等待一段时间。

    您还可以在生命周期中添加 SIG 术语,该特定 pod 也不会从队列中获取下一个项目。

    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

    【讨论】:

    • 谢谢 Harsh ? - 我觉得这是唯一的解决方案,但我不禁觉得这是 janky 的缩影
    • 是的,您可能必须根据需要开发智能应用程序或以这种方式编写消费者。
    【解决方案2】:

    如果你发现自己和我的情况一样,看看 Argo:https://argoproj.github.io/argo/

    【讨论】:

      猜你喜欢
      • 2013-01-29
      • 2018-07-10
      • 1970-01-01
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 2019-03-30
      相关资源
      最近更新 更多