kubernetes - 在不终止的情况下在完成时缩减副本
问题描述
我正在使用 Kubernetes 副本来运行“运行到完成”任务。
目前,当我们在队列中有要完成的工作项并且容器立即使用该项目时,我会增加副本的数量。由于所需的副本从未改变,Kubernetes 启动一个新的副本,然后发现没有什么可做的,因此立即终止(并重复)。如果我在容器完成之前缩减副本(即,一旦队列项被消耗),正在工作的副本之一会过早终止。
有没有办法减少副本而不强制终止?
解决方案
您可以termination grace period
为所有 pod 添加,因此当容器终止时,它会等待一段时间。
您还可以在生命周期中添加 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
推荐阅读
- python - 如何正确关闭使用 local_addr 的异步连接
- javascript - 如何将 RRule 应用于拖到日历的外部事件
- powershell - 使用带有哈希表和 PSCustomObject 的 New-ADUser 之间的区别
- javascript - locomotive-scroll 用于平滑滚动 - 身体不完全显示
- php - 如何在yii2的radioList()中添加不同的通用类
- terraform - 删除数据库后 Terraform 尝试读取 SQL 用户
- powershell - 我应该怎么做才能正确安装cordova?
- android - ConstraintLayout - Ellipsize 开始不起作用
- python - matplotlib 不绘制最后一个数据点
- swift - didReceiveRemoteNotification 和 iOS 14 崩溃