在不终止的情况下按比例缩小副本
Scaling Down Replicas On Completion Without Termination
我正在使用 Kubernetes 副本来执行 运行 'run-to-completion' 任务。
当我们有一个工作项目要在队列上完成并且容器立即使用该项目时,我目前会增加副本的数量。由于所需的副本从未改变,Kubernetes 启动了一个新的副本,然后发现没有什么可做的,因此立即终止(并重复)。如果我在容器完成之前缩小副本(即队列项一被消耗),正在工作的副本之一会过早终止。
有没有办法减少副本而不强制终止?
您可以为所有 pods 添加 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
如果你发现自己和我有同样的情况,看看Argo:https://argoproj.github.io/argo/
我正在使用 Kubernetes 副本来执行 运行 'run-to-completion' 任务。
当我们有一个工作项目要在队列上完成并且容器立即使用该项目时,我目前会增加副本的数量。由于所需的副本从未改变,Kubernetes 启动了一个新的副本,然后发现没有什么可做的,因此立即终止(并重复)。如果我在容器完成之前缩小副本(即队列项一被消耗),正在工作的副本之一会过早终止。
有没有办法减少副本而不强制终止?
您可以为所有 pods 添加 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
如果你发现自己和我有同样的情况,看看Argo:https://argoproj.github.io/argo/