Kubernetes 中批量任务处理与存活探针配置
在 Kubernetes 环境中,处理批量任务是一个常见需求。对于不同类型的任务队列,如动态队列和静态队列,Kubernetes 提供了不同的处理方式,同时,为了确保任务容器的稳定运行,存活探针的配置也至关重要。
1. 使用 Jobs 进行批量任务处理
在 Kubernetes 中,对于连续运行的任务队列,Deployment 是合适的对象;但如果要处理有限批量的工作,Job 则是理想的选择。
1.1 动态队列处理
可以将动态队列从使用 Deployment 改为使用 Job。Deployment 和 Job 都允许创建多个 Pod 工作节点,并且在失败时都会重新创建 Pod。但 Deployment 没有 Pod “完成” 的概念,它会始终保持指定数量的副本运行;而 Job 管理的 Pod 在以成功退出码(如 exit 0 )终止时,会向 Job 控制器表明工作已成功完成,且不会重新启动。
在动态 Kubernetes 环境(如具有自动缩放功能的环境)中,Job 允许我们 “设置后无需再管”,任务完成后资源消耗降为零。不过,Job 完成后不能再进行扩容,但可以删除并重新创建。
为了让任务工作容器在 Job 环境中正常工作,需要添加队列为空时的成功退出条件。以下是修改后的工作代码示例:
import os
import signal
import redis
from pi import *
redis_host = os.environ.get('RE
超级会员免费看
订阅专栏 解锁全文
26

被折叠的 条评论
为什么被折叠?



